Select 选项重新加载并更改其他 select 框的值
Select option reload and change value of other select box
我有两个 select 盒子。
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>
所以这里的问题是房间号取决于房间类型。每种房型都有不同的房间号。谁能建议我如何在 select 房间类型后重新加载房间号的值?
我正在使用 bootstrap。
你需要用JS来重新加载房间号,我的方法(绝不是最好的方法)是有一个脚本(我下面使用jQuery),这比从数据库中获取值但不太安全:
$('#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)
}
});
如果您希望在不刷新页面的情况下加载数据库中的潜在数据,则必须使用 AJAX。 PHP 在不刷新整个页面的情况下无法加载新数据。希望我有所帮助:)
我有两个 select 盒子。
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>
所以这里的问题是房间号取决于房间类型。每种房型都有不同的房间号。谁能建议我如何在 select 房间类型后重新加载房间号的值?
我正在使用 bootstrap。
你需要用JS来重新加载房间号,我的方法(绝不是最好的方法)是有一个脚本(我下面使用jQuery),这比从数据库中获取值但不太安全:
$('#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)
}
});
如果您希望在不刷新页面的情况下加载数据库中的潜在数据,则必须使用 AJAX。 PHP 在不刷新整个页面的情况下无法加载新数据。希望我有所帮助:)