我一直在网上寻找解决方案,但似乎没有一个起作用,我正在尝试过滤组合框中的选项,该组合框应该是使用sql查询来填充的,该sql查询用于过滤另一个组合框的条目。
我已经能够使用php从sql数据库中填充组合框,但是我无法使用第一个组合框过滤结果。
我的编码在下面;
查询代码
<?php
$connection = mysqli_connect("", "", "", "");
$lab = mysqli_real_escape_string($_POST['LabDep']);
$results = mysqli_query($connection, "SELECT SampleID, SampleType FROM `sampletypes` WHERE Lab = $lab");
mysqli_close($connection);
?>
组合框代码
<select input name="SampType1">
<?php foreach($results as $user): ?>
<option value="<?= $user['SampleID']; ?>"><?= $user['SampleType']; ?></option>
<?php endforeach; ?>
</select style="visibility:hidden;"/>
由我制作的AJAX代码不知道有多少在线指南,因此很可能是真正的哈希,因为我以前从未使用过
<script>
function GetNames(LabDep) {
if (genderID > 0) {
$("#SampType1").get(0).options.length = 0;
$("#SampType1").get(0).options[0] = new Option("Loading samples", "-1");
$.ajax({
type: "POST",
url: "",
data: "{Lab:" + Lab + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#SampType1").get(0).options.length = 0;
$("#SampType1").get(0).options[0] = new Option("Select name", "-1");
$.each(msg.d, function(index, item) {
$("#SampType1").get(0).options[$("#SampType1").get(0).options.length] = new Option(item.Display, item.Value);
});
},
error: function() {
$("#SampType1").get(0).options.length = 0;
alert("Failed to load names");
}
});
}
else {
$("#SampType1").get(0).options.length = 0;
}
}
</script>
最终将有4个组合框需要更新,即sampletype1,sampletype2,sampletype3和sampletype4,这也仅在选择了一定数量(已编码并可以使用)时才可见。
它是如此令人沮丧地接近工作,我只是不知道我要去哪里错了。
在此先感谢大家的帮助。