我创建了一个脚本,用第一个组合框的值填充第二个组合框。但这不是我想要做的。我想根据在第一个组合框中选择的项目,使用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>
任何人都可以给我一个提示我应该执行查询的提示吗?或者只是指出我做错了什么?
答案 0 :(得分: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",
});