我用谷歌搜索过,在PHP本身,JavaScript/jQuery/AJAX和CodeIgniter会话数据/ flash数据中有很多方法可以做到这一点.
但我更喜欢在PHP中做到这一点.我的表单非常大,包含不同的元素,如文本输入,下拉菜单,收音机等.但是我在View(MVC)的输入中尝试了以下内容.
例:
< input type="radio" name "gender" value="Male" <?php echo ($gender == 'Male')? 'checked': ''; ? />
< input type="radio" name "gender" value="Female" <?php echo ($gender == 'Female')? 'checked': ''; ? />
Run Code Online (Sandbox Code Playgroud)
这会在页面加载时出错,显然是因为未定义$ gender变量.我可以在Controller中解决这个问题,但这将是一个巨大的过程并分割代码.还有其他方法吗?欢迎举例!
我正在尝试使用表中的数据填充选择输入/表单下拉列表.
HTML
<select id="room_type" name="inputInfo" >
<option value="<?php echo set_value('room_type', '$data_room_type'); ?>"></option>
</select>
Run Code Online (Sandbox Code Playgroud)
模型:
function get_room_details($data_room_type) { // line 19
$data_room_type = array();
$this->db->select('room_type', 'default_price');
$this->db->from('room_type');
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $row) {
$data_room_type[] = $row;
}
}
return $data_room_type;
}
Run Code Online (Sandbox Code Playgroud)
控制器:
function index() {
$this->load->view('/main/new_reservation');
$this->load->model('reservations_model');
$this->reservations_model->get_room_details($data_room_type);
}
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:

遇到PHP错误
严重性:注意
消息:未定义的变量:data_room_type
文件名:controllers/reservations.php
行号:8
第8行是::
$this->reservations_model->get_room_details($data_room_type);
Run Code Online (Sandbox Code Playgroud) 模型:
function pop_room_type() {
$this->db->select('rt_name')->from('room_type');
$query=$this->db->get();
return $query->result_array();
}
Run Code Online (Sandbox Code Playgroud)
控制器:
function index() {
$this->load->model('reservations_model');
$data['room_type'] = $this->reservations_model->pop_room_type();
//echo "<pre>";print_r($data['room_type']);echo"</pre>";
$this->load->view('/main/new_reservation', $data);
}
Run Code Online (Sandbox Code Playgroud)
视图:
<?php
//$js = 'name='$room_type'';
echo form_dropdown('room_type', $room_type);
?>
Run Code Online (Sandbox Code Playgroud)
但是,有一个大问题,而所有选择选项的"名称"是相同的.此下拉列表中的所有选项都带有与(room_type)表的列名相同的值:rt_name.我尝试了几样但仍然无法为下拉列表中的选项的名称字段分配唯一值.
可能重复:
PHP SQL,查询只返回一行数据
我的一个朋友被要求我做一些编码.他用"gameName"(VARCHAR)和"releaseDate"(日期)列创建了一个MySQL数据库.他需要从当前日期之前发布的"gameName"中获取并显示游戏名称.
在这里,我使用了MySQL的CURDATE()函数来过滤掉已经发布的游戏.但问题是我必须为每个结果写一个回声线.这是糟糕的编程,其背后的逻辑非常糟糕.
<?php
$mysql_host="host_name";
$mysql_username="db_user";
$mysql_password="db_password";
$mysql_database="db_name";
$mysql_table="table_name";
mysql_connect("host_name", "db_user", "db_password") or die("YOLO");
mysql_select_db("db_name") or die("YOLO");
$sql = mysql_query("SELECT gameName FROM table_name WHERE CURDATE() > releaseDate");
$result = mysql_fetch_row($sql);
echo $result[0];
echo $result[1];
echo $result[2];
// and so on...?
?>
Run Code Online (Sandbox Code Playgroud)
结果:只显示一条记录.