问题?
我需要有关PHP的onChange命令的帮助。基本上我正在建立一个酒店客房预订系统。我试图做的是有两个组合框。
我想要做的是,如果我从组合框1中选择酒店名称,那么该特定酒店的楼层数应该在组合框2中自动填充。(此楼层数据信息应该来来自数据库中的相应表格/字段)
我想做什么 - 代码
<td>Hotel:
<select name="hotel_name" id="hotel_name" title="<?php echo $row_rs_hotel['hotel_name']; ?>" onchange="<?php
while ($row_rs_floor = mysql_fetch_assoc($rs_floor));
$rows = mysql_num_rows($rs_floor);
if($rows > 0) {
mysql_data_seek($rs_floor, 0);
$row_rs_floor = mysql_fetch_assoc($rs_floor);
}
?>">
<?php
do {
?>
<option value="<?php echo $row_rs_hotel['hotel_name']?>"><?php echo $row_rs_hotel['hotel_name']?></option>
<?php
} while ($row_rs_hotel = mysql_fetch_assoc($rs_hotel));
$rows = mysql_num_rows($rs_hotel);
if($rows > 0) {
mysql_data_seek($rs_hotel, 0);
$row_rs_hotel = mysql_fetch_assoc($rs_hotel);
}
?>
</select></td>
</tr>
<tr>
<td>Floor No:
<select name="floor_no" id="floor_no" title="<?php echo $row_rs_floor['floor_no']; ?>" onchange="var id=$('hotels_name').val();
$('floors_no').load('ajax.php?id='+id);
">
<?php
do {
?>
<option value="<?php echo $row_rs_floor['floor_no']?>"><?php echo enter code here$row_rs_floor['floor_no']?></option>
<?php
} while ($row_rs_floor = mysql_fetch_assoc($rs_floor));
$rows = mysql_num_rows($rs_floor);
if($rows > 0) {
mysql_data_seek($rs_floor, 0);
$row_rs_floor = mysql_fetch_assoc($rs_floor);
}
?>
</select></td>
我从上面的代码中得到什么?
组合框编号2在页面打开时自动加载表格中的第一条记录。无论我在COMBO BOX 1中选择多少次酒店,组合框2中的值都保持不变。
请帮助.. !!!
答案 0 :(得分:0)
你必须结合javascript和php,因为你想从数据库(服务器端使用php +一点mysql)检索信息,动态页面没有刷新(客户端使用javascript)。这肯定会成为一项长期困难的工作,但我认为这是最好的方法。
阅读这篇关于双下拉菜单的文章并研究代码this article(或搜索类似的项目),当你理解javascript时,你必须用适当的PHP填充它。
例如,这是一些javascript(或html)源代码:
if (Indx==1)
{
options[0]=new Option("Choose a JavaScript Page","");
options[1]=new Option("Alerts","alerts.htm");
options[2]=new Option("Back and Forward Buttons","BackForward.htm");
options[3]=new Option("Contents","index.html");
}
对于你的项目,它应该是这样的(不完整而且没有错误,但它只是给你一个想法:
if (Indx==1)
{
<?php
$i=0;
while ($row = mysql_fetch_array($result))
{
?>
options[<?php echo $i;?>]=new Option("<?php echo $row['name']."\",\"".$row['page']; ?>");
<?php $i=$i+1; } ?>
}
这应该给你相同的代码(假设'name'和'page'是数据库中列的值)。这需要在所有方便的javascript位中完成,但我不会完成所有工作...尽力而为,如果仍然无效,请回来询问有关代码的更具体问题。
如果你让它发挥作用,我想鼓励你在这里发布它来编辑你的问题,这样每个人都可以从中学习。请记住,这就是我如何处理这个问题,但肯定有其他方法可以解决这个问题。