使用Javascript和Json将选择选项值传递给PHP并从数据库中检索数据


Using Javascript and Json to pass select option value to PHP and retrieve data from database

我想做的是,每当用户在grouptypes下拉菜单中选择一个组类型时,它都会触发一个处理程序来检索属于该组类型的相应组,并将其传递给第二个选择下拉列表。

我有两个数据库表,组类型和组。一个组类型可以有多个组,但一个组只能属于一个组类型。我有两个选择标签,一个是grouptypes,另一个是groups。

我有如下代码,它是不正确和不完整的。所有的代码都包含在同一个PHP文件GroupModificationSuccess.php中(这有问题吗?)它应该得到'grouptypes'的值并回显'true',但它回显'false'。这意味着值没有正确传递。有人能帮我看一下,告诉我正确的方法吗?由于

<?php
    $rows = array();
    if(isset($_GET['grouptypes'])){
        echo 'true';
    }else{
        echo 'false';
    }
?>
<script type="text/javascript">
    function populateFruitVariety() {
        $.getJSON("url_for('GroupModificationSuccess')", {grouptypes:$('#grouptypes').val()}, function(data) {
            var select = $('#groups');
            var options = select.attr('options');
            $('option', select).remove();
            $.each(data, function(index, array) {
                options[options.length] = new Option(array['group']);
            });
        });
    }
    $(document).ready(function() {
        populateFruitVariety();
        $('#grouptypes').change(function() {
            populateFruitVariety();
        });
    });
</script>
GroupType: 
<select id="grouptypes">
    <?php foreach($grouptypes as $type) : ?>
    <?php echo "<option value='" . $type->name . "'>" .$type->name. "</option>"; ?>
    <?php endforeach ?>
</select>
<br />
<br />
Result:
<span id="list-of-groups"></span>
<br />
Group:
<select name="group" id="groups">
    <?php $count = 0; ?>
    <?php foreach($groups as $group) : ?>
    <?php $count++; ?>
    <?php echo "<option value='" . $group->name . "'>" .$group->name. "</option>"; ?>
    <?php endforeach ?>
</select>
<br />

我的建议是通过使用firebug/类似的web开发人员工具来调试代码,通过使用javascript函数console.log将消息输出到控制台。只需传递字符串/对象以将其输出到控制台。

例如,尝试输出options变量。我的猜测是,它是空的,因为您正在使用attr函数。不如试试子函数,它可能会对您有所帮助。