jquery的ajax处理php返回数组的问题,高手们帮帮忙啊!!!

前台:zz="zid="+id;jQuery.ajax({type:"get",url:"manage/tz_left.php",data:zz,dataType:"js... 前台:
zz="zid="+id;
jQuery.ajax({
type:"get",
url:"manage/tz_left.php",
data:zz,
dataType:"json",
beforeSend: function(){
//
},
success:function(msg){
jQuery.each(eval(msg),function(idx,item){
alert(item.id);
alert(item.name);
alert(item.type);
});
} ,
complete: function(XMLHttpRequest, textStatus){
alert(XMLHttpRequest);
alert(textStatus);
}
});

后台:
$ary=array();
$group_rs=select_spell("article_widget_article_channel","*","site_id=$zd",'nodepath');

if(!empty($group_rs))
{
$i=0;
foreach($group_rs as $rs)
{
$ary[$i]["id"]=$rs['id'];
$ary[$i]["name"]=$rs['name'];
$ary[$i]["type"]=$rs['nodepath'];
$i++;
}
}

echo json_encode($ary);

如果后台 直接
$id=array();
$id[0]["id"]='1';
$id[0]["name"]='张三';
$id[0]["type"]='111111';
$id[1]["id"]='2';
$id[1]["name"]='hah';
$id[1]["type"]='2222';
echo json_encode($id);

是可以接收到值的 用上面的赋值 就不对了 请问是哪里出错了??刚学PHP 新手
展开
 我来答
百度网友5bb5cece9
2012-03-26 · TA获得超过101个赞
知道答主
回答量:87
采纳率:0%
帮助的人:55.6万
展开全部
你把请求的地址直接在浏览器下打开看看如下代码输出是否正常,如果正常注释掉两个echo即可,如果输出数据有误,则是select_spell返回数据有问题
=========================
$group_rs=select_spell("article_widget_article_channel","*","site_id=$zd",'nodepath');
echo "<pre>". var_export($group_rs,true) ."</pre>";
$ary=array();
if( is_array($group_rs) && $group_rs ){
foreach($group_rs as $rs){
$ary[] = array("id"=>$rs['id'], "name"=>$rs['name'],"type"=>$rs['nodepath']);
}
}
echo "<pre>". var_export($ary,true) ."</pre>";
exit( json_encode($ary) );
=========================
还有你的jquery写法也有问题,类型已经设置dataType:"json",则不能再次eval,修改为如下:
=========================
success:function(msg){
jQuery.each(msg, function(idx,item){
alert('id:'+ item.id +'\nname:'+ item.name +'\ntype:'+ item.type);
});
}
herrywood
2012-03-24 · TA获得超过869个赞
知道小有建树答主
回答量:523
采纳率:66%
帮助的人:484万
展开全部
是foreach循环内的写法不对,你上面的写法只能定义常量
foreach($group_rs as $i=>$rs)
{
$ary[$i] = new array(
"id" => $rs['id'],
"name" => $rs['name'],
"nodepath" => $rs['nodepath']
);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
isayr
2012-04-03 · 超过23用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:38.7万
展开全部
先后台运行php看输出的是否是一组json数据。如果是。那jquery中就不用eval了。直接调用就可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友eafa6be
2012-03-28 · 超过37用户采纳过TA的回答
知道答主
回答量:166
采纳率:0%
帮助的人:112万
展开全部
后台返回值应该是{参数1:值1,'参数2':'值2'}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zgh26782000
2012-03-26 · TA获得超过1453个赞
知道小有建树答主
回答量:788
采纳率:0%
帮助的人:497万
展开全部
接收到值的 用上面的赋值 就不对了 请问是哪里出错了??刚学
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式