php - 如何使用 jQuery、PHP 和 MySQL 加载 JSON 数据

标签 php javascript jquery mysql

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

//模板:

<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);”之前。 最终发出退出调用以避免额外输出。

$groups = $db->getResultsForQuery($query, $grouptypes);
header('Content-type:application/json;charset=utf-8');
echo json_encode($groups);
exit();

关于php - 如何使用 jQuery、PHP 和 MySQL 加载 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9103760/

相关文章:

jquery - 向 jQuery 图像 map 插件添加反向突出显示?

jquery - 连续旋转图像

javascript - 我如何在 php 中分别打印多个值?

javascript - 无法填写文本/字符串下拉值

javascript - 如何取消 Firefox 中的事件冒泡?

javascript - 使用 *.ini 配置文件通过 URL 更改 HTML 文本

javascript - 如何通过ID从两个服务获取数据并显示内容

php - 获取 PHP 删除变量

javascript - JS、PHP、MySQL 数学运算的代码错误

javascript - 如何对包含字符串和整数的数组中的元素进行排序?