我想创建一个动态下拉菜单,其中一个选择基于另一个选择的值。我尝试了很多次都失败了。我有如下代码。任何人都可以帮助我找出问题所在。

//模板:

<script type="text/javascript">

$(function(){
  getSelectVal();
  $("#grouptypes").change(function(){
      getSelectVal();

  });
});

function getSelectVal(){
    $.getJSON('<?php echo url_for('group_utilization/GroupModification') ?>', {'grouptypes':$("#grouptypes").val()},function(data){
        var groups = $("#groups");
        $("option",groups).remove();
        $.each(json,function(index,array){
            var option = "<option value='"+array['id']+"'>"+array['title']+"</option>";
            select.append(option);
        });
    });
}

</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">

</select><br />

用于返回数据库返回值的另一个文件:
if(isset($_GET["grouptypes"])){
 $grouptypes = $_GET["grouptypes"];

 $query = "SELECT g.name FROM groups g INNER JOIN group_types gt ON(gt.id = g.group_type_id AND gt.name = ?)";

 $groups = $db->getResultsForQuery($query, $grouptypes);
 echo json_encode($groups);
 }

最佳答案

您的PHP脚本是否为JSON发送适当的 header ?

尝试将此Juste放在“echo json_encode($ groups);”之前。
最终发出退出 call 以避免额外的输出。

07-24 18:10
查看更多