2011-12-19 90 views
1

如何隐藏不在Hotel1的房间号码,并在点击提交按钮时将选定的房间号码发送到下一页。现在,我将被迫仅发送所选酒店的ID,因为我需要selHotel选项和selroom的值相同。使用jQuery隐藏选择列表中的选项

我使用的是PHP,html和Sqlite数据库。 hotelrows和roomrows包含酒店桌子和房间表的所有行。任何人都可以给我一个关于如何让这个工作的想法吗?也就是说,当选择Hotel1时,我可以选择selroom中的房间101或102。 (很抱歉,如果我的英语不好,希望有人明白我在问了。)

Hotels: 
id.....Hotel 
1......Hotel1 
2......Hotel2 

Rooms: 
hid....Room# 
1.......101 
1.......102 
2.......301 

我的PHP/HTML:

<select id="selHotel" name="selH"> 
<option value="default" selected> Select hotel</option> 
<?php 
    foreach($hotelrows as $row) 
    { 
    echo "<option value='". $row['id'] . "'>". $row['hotelname'] . "</option>"; 
    } 
?> 
</select> 

<select id="selroom" name="selr"> 
<option value="default" selected>Select room </option> 
<?php 
    foreach($roomrows as $row) 
    { 
    echo "<option value='". $row['hid'] . "'>". $row['roomnum'] . "</option>"; 
     } 
?> 
</select> 

jQuery来隐藏饭店2房间的话,我选择酒店1:

$("#selHotel").change(function(){ 
     var hotelVal = $(this).find("option:selected").val(); 
     $('#selroom option').hide(); 
     $('#selroom option[value='+hotelVal+']').show(); 
    }); 
+1

代码的主要思路看起来声音。什么不起作用? – Halcyon 2011-12-19 23:02:16

+0

在页面insert.php上有效。但是,当我点击提交并使用POST将其发送到other.php时。然后,$ row ['hid']需要是$ row ['roomnum'],因此我可以使用我在insert.php中选择的房间号。 id和hid在数据库中连接并且是相同的数字,即酒店表中的酒店的ID。所以在other.php中,我只能得到id和hid的值,当我这样做时:$ _POST ['selr']。那是因为我设置了id的选项值。问题是我如何过滤房间号码,并能够发送我选择的号码作为选择框的值? – krunarsson 2011-12-20 00:59:13

回答

0

使用roomnum为值,添加您的HID作为类,然后选中时用它作为过滤器:

PHP:

echo "<option class='cls_". $row['hid'] . "' vlaue='".$row['roomnum']."'>". $row['roomnum'] . "</option>"; 

$("#selHotel").change(function(){ 
    var hotelVal = $(this).find("option:selected").val(); 
    $('#selroom option').hide(); 
    $('#selroom .cls_'+hotelVal).show(); 
    $('#selroom .cls_'+hotelVal).first().attr('selected',true); 
}); 
相关问题