Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery、PHP和MySQL加载JSON数据_Php_Javascript_Jquery_Mysql - Fatal编程技术网

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

如何使用jQuery、PHP和MySQL加载JSON数据,php,javascript,jquery,mysql,Php,Javascript,Jquery,Mysql,我想创建一个动态下拉菜单,其中一个选择基于另一个选择的值。我试了很多次都失败了。我有如下代码。任何人都可以帮我找出问题所在 //模板: <script type="text/javascript"> $(function(){ getSelectVal(); $("#grouptypes").change(function(){ getSelectVal(); }); }); function getSelectVal(){ $.

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

//模板:

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

最上面的代码块实际上应该是:

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

  }); 
});

在附加以下内容之前,需要使用jQuery var引用标记:

function getSelectVal(){ 
  var select = $("#grouptypes");

  $.getJSON('<?php echo url_for('group_utilization/GroupModification') ?>', {'grouptypes':$("#grouptypes").val()},function(data){ 
    var groups = $("#groups"); 
    $("option",groups).remove(); 
    $.each(data,function(index,array){ 
        var option = "<option value='"+array['id']+"'>"+array['title']+"</option>"; 
        select.append(option); 
    }); 
  }); 
} 
函数getSelectVal(){
变量选择=$(“#组类型”);
$.getJSON(“”,{'grouptypes':$(“#grouptypes”).val()},函数(数据){
风险值组=$(“#组”);
$(“选项”,组).remove();
$.each(数据、函数(索引、数组){
var option=“”+数组['title']+”;
选择。追加(选项);
}); 
}); 
} 

您可能对url\u for()函数的方式有问题,因为它可能无法正确输出链接以供getJSON使用。例如,如果我摆弄了一些与您的代码相近的东西(顺便说一句,您使用的是Symphony吗?)


这显然不是我想要达到的联系。另外,请确保在PHP代码末尾添加分号,然后重试。

您的PHP脚本是否为JSON发送了相应的头

试着把它放在“echo json_encode($groups);”之前。 最后进行退出调用以避免额外的输出

$groups=$db->getResultsForQuery($query,$grouptypes)
标题('Content-type:application/json;charset=utf-8')
echo json_编码($groups)
退出()


当你说你失败了,你是什么意思?您是否有任何可以发布的错误消息?是否有脚本错误?您似乎引用了一个未初始化的变量json
${
以及
json
变量,
select
变量没有在您发布的代码中初始化。注意:未定义的变量:第47行
$(文档)上的grouptypes/Users/alexhu/Work/menagerie/trunk/apps/utilities/modules/group_usion/actions/actions.class.php中的grouptypes.ready(function(){});
$(function(){});
完全相同。以下是文档:嗨,Ron。谢谢你的回答,但它也不起作用。它无法获得Json传递的值,而isset($\u get[“grouptypes”])为false。我很困惑,你不想在$中使用传递的“data”参数而不是“Json”。每个(json…-我更改为上面的答案以反映此更改。希望这将解决“isset”操作。
function getSelectVal(){ 
  var select = $("#grouptypes");

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

                    });

            });
http://dev.wonderland/%3C?%20echo%20'server.php'?%3E