在不提交表单的情况下将选项值传递给 PHP


passing option value to php without submitting the form

我一直在寻找解决问题的方法,但没有任何成功。我有一个带有选择元素的 HTML 表单,用于选择房间,例如:

<select name="room" id="room">
<option value="MATH-1">MATH-1</option>
<option value="CHEM-3">CHEM-3</option>
<option value="LAB-04">LAB-04</option>
</select>

后来在表格中,我有一个用于选择人数的范围元素:

<input type="range" name="personCount" id="personCount" min="1" max="20">

有关房间的信息(名称和容量)存储在mySQL数据库中。我想做的是将范围元素中的最大值设置为从数据库加载的值(数字 20 只是一个示例),每次更改房间选择器时,我还想更改范围元素中的最大值。我知道如何从选择器中获取值(可能通过使用javascript),当我已经知道房间的名称时,我也知道如何从数据库中获取房间容量,但我不知道如何将javascript与php相结合。我的想法应该是这样的:

<input type="range" name="personCount" id="personCount" min="1" max="<?php getRoomCapacity($roomName); ?>">

我感谢任何建议。

如果要动态执行此操作,可以使用 AJAX。如果你使用的是jQuery,你可以这样做:

javascript (jQuery):

$(document).ready(function() {
    // when room is changed 
    $("#room").change(function() {
       var room = $("#room").val();
       // use AJAX to call php for getting room capacity
       $.post("getroomcapacity.php", 
           { room: room }, 
           function(data) {
               // set max attribute with the data we got from getroomcapacity.php
               $("#personCount").attr("max", data.max);
       });
    }); 
});

获取房间容量.php:

<?php
$room = $_POST['room'];
$max = 20; // you get this value from db
echo json_encode(array('max' => $max));