2011-12-19 120 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); 
});