我目前正在尝试学习PHP,并通过一项涉及创建影院预订系统的练习。目前我已经将以下代码作为表格的一部分,允许电影院的经理将新放映的细节输入电影系统:
"\n\t<td><select name='screen[0]' style='width:100%;'/>".
"<option>";
$sql0 = "SELECT * FROM tblscreen";
$result0=mysqli_query($connection, $sql0);
while ($newArray = mysqli_fetch_array($result0)) {
$screen = $newArray['id'];
echo "<option> $screen </option>";
}
echo "</select></td>".
"\n\t<td><input name='seatsremaining[0]'/></td>".
"\n\t<td></td>".
"\n</tr>";
到目前为止,我所写的内容为用户提供了一个下拉选择框,其中包含数据库实体的名称列,其中包含有关电影院屏幕的所有信息。正如您在代码中看到的,用于输入显示数据的表格的下一列用于记录可用于显示的席位总数。目前,这是由经理手动输入的。但是,存储屏幕中的总座位数的值存储在保存数据库中的屏幕名称的同一实体中。我想编写一些代码,一旦从下拉列表中选择了一个屏幕名称,就会用屏幕实体中的相应值更新输入表的剩余列。谁能告诉我实现这个目标的最佳方法是什么?
答案 0 :(得分:0)
你应该在选择事件onchange
后刷新页面或使用ajax(我推荐第二个选项),如下所示:
<select name='screen[0]' onchange="updateSeats(0)" style='width:100%;'/>
...
<input name='seatsremaining[0]' id='seatsremaining[0]'/>
...
<script type="text/javascript">
function updateSeats(id){
... here you have to get the seats via AJAX php request against a callback function ...
}
function callbackFunction(info){
id = info.id;
seats = info.seats;
document.getElementById("seatsremaining["+id+"]").value = seats;
}
</script>