使用相同表单上的另一个组合框的结果过滤组合框

时间:2018-10-29 19:39:21

标签: php jquery ajax combobox

我一直在网上寻找解决方案,但似乎没有一个起作用,我正在尝试过滤组合框中的选项,该组合框应该是使用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,这也仅在选择了一定数量(已编码并可以使用)时才可见。

它是如此令人沮丧地接近工作,我只是不知道我要去哪里错了。

在此先感谢大家的帮助。

0 个答案:

没有答案