2017-09-25 253 views
0

我有兩個選擇框。選擇重新加載並更改其他選擇框的值

Select Room Type 
Select Room No. 

這裏是PHP代碼:

<select id="room_type" name="room_type" class="form-control"> 
<?php 
$selected = $row['room_type']; 
while($result = mysqli_fetch_array($getroomtypes)){ ?> 
<option value="<?php echo $result['id'];?>" > <?php echo $result['type'];?> </option> 
<?php 
} 
?> 
</select></div> 
</div> 

<div class="form-group"> 
<label class="control-label col-sm-2">Select Room</label> 
<div class="col-sm-5"> 
<select id="room" name="room" class="form-control"> 
<?php 
$selected = $row['room']; 
while($result = mysqli_fetch_array($getroom)){ ?> 
<option value="<?php echo $result['id'];?>"> <?php echo $result['room'];?> </option> 
<?php 
} 
?> 
</select></div> 
</div> 

所以這裏的問題是,房號取決於房型。每種房型都有不同的房間號碼。任何人都可以建議我如何在選擇房間類型後重新加載房間號的值?

我正在使用引導程序。

+1

ajax將是一個很好的解決方案。例如,如果你是谷歌的負載,例如:https://www.google.co.uk/search?q=PHP+ajax+dependent+selects&oq=PHP+ajax+dependent+selects&aqs=chrome..69i57j0j69i60l3j0.3000j0j7&sourceid=chrome&ie = UTF-8 – ADyson

回答

1

你需要使用JS來重新加載房間號碼,我會做的方式(絕不是最好的方式)是有一個腳本(我的下面使用jQuery),這比從一個腳本獲取值更快DB但安全性較低:

$('#room_type').on('change', function(e){ // when the room_type changes 
    $('#room').remove('option'); // remove all previous options 

    let maxRooms = e.val() == "Shit Muncher Suite" ? 3 : 0; // set max rooms depending on room_type, e.val() is the room_type 

    for(var i = 0; i < maxRooms; i++) { 
    $('#room').add("option").text(i); // add a new option for each room (3) 
    } 

}); 
+0

你好,房間號是從數據庫中提取的..這是可能的這個腳本? – Sohail

+0

不,你需要使用ajax調用: –

1

如果您希望數據庫中的潛在數據在不刷新頁面的情況下加載,則必須使用AJAX。如果不刷新整個頁面,PHP無法加載新數據。希望我幫助:)

相關問題