0

我创建了一个脚本,它用第一个组合框的值填充第二个组合框。但这不是我想做的。我想根据在第一个组合框中选择的项目,用 SQL 查询的结果填充第二个组合框。

这是我的javascript:

<script type="text/javascript">
    function selectDropdown(){
        var dropdownValue=document.getElementById("dropdown").value;
        $('option[value=st]').text(dropdownValue);
    }
</script>

第一个组合框:

<select id="dropdown" name="dropdown" onchange="selectDropdown()">
    <option value="dd">--take an option--</option>
    <?
    $standard = Env::value('standard');
    if (!$status)
        $statement = "select code from standard";
    foreach ($db->query($statement )->fetchall() as $row)
        echo "<option".($row == $standard ? ' selected ' : '').">$row[0]</option>";
    ?>
</select>

第二个我想在其中显示查询结果:$q= select request.code from request inner join standard on ( request.standard_id=standard.id) where standard.code=$st

<select name='st' class='txt'>
  <option value="st"><? echo $st; ?></option>
</select>

谁能给我一个提示我应该在哪里执行查询?或者只是指出我做错了什么?

4

1 回答 1

0

每次更改第一个下拉选择时,使用 jQuery 的 ajax 调用向服务器发出请求。在服务器端创建一个脚本,该脚本将接收该请求并以 JSON 格式返回第二个下拉列表的相应记录,然后可以通过 javascript 轻松处理。要使用 ajax,请参阅此链接:http ://api.jquery.com/jQuery.ajax/

它会像:

jQuery.ajax({
    method: "POST",
    url: "http://domain.com/path/to/script.php",
    data: value_of_selected_item_from_first_dropdown,
    success: function(response) {
        // Set 2nd dropdown values to those received via response
    }
    dataType: "json",
});
于 2013-03-13T12:05:21.213 回答