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

时间:2011-12-30 15:25:13

标签: php javascript jquery json

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

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

我的代码如下,不正确和完整。所有代码都包含在同一个PHP文件GroupModificationSuccess.php中(这是一个问题吗?)。它应该得到'grouptypes'和echo'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 />

1 个答案:

答案 0 :(得分:0)

我的提示是使用firebug / simular Web开发人员工具调试代码,使用javascript函数console.log将消息输出到控制台。只需传递字符串/对象即可将其输出到控制台。

例如,尝试输出options变量。我的猜测是,因为你使用了attr函数它是空的。而是尝试子功能,这可能会帮助你。