onChange刷新PHP中的特定下拉列表

时间:2012-03-31 22:23:37

标签: php onchange jcombobox

问题?

我需要有关PHP的onChange命令的帮助。基本上我正在建立一个酒店客房预订系统。我试图做的是有两个组合框。

  • 一个用于HOTEL NAME(COMBO BOX NO.1)
  • 另一个为FLOOR NO(COMBO BOX NO.2)

我想要做的是,如果我从组合框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中的值都保持不变。

请帮助.. !!!

1 个答案:

答案 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位中完成,但我不会完成所有工作...尽力而为,如果仍然无效,请回来询问有关代码的更具体问题。

如果你让它发挥作用,我想鼓励你在这里发布它来编辑你的问题,这样每个人都可以从中学习。请记住,这就是我如何处理这个问题,但肯定有其他方法可以解决这个问题。