如何使用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