Javascript 在AJAX调用之后,我在PHP中生成了奇怪的JSON输出
我在这方面有点生疏,完全搞砸了。我有一个PHP结果集,通过该结果集进行如下迭代:Javascript 在AJAX调用之后,我在PHP中生成了奇怪的JSON输出,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我在这方面有点生疏,完全搞砸了。我有一个PHP结果集,通过该结果集进行如下迭代: $rows = array(); while($r = mysql_fetch_assoc($result)) { $rows[] = $r; } echo json_encode($rows); 然后我在jQuery代码中输出如下: success: function(json) { $('.suc
$rows = array();
while($r = mysql_fetch_assoc($result))
{
$rows[] = $r;
}
echo json_encode($rows);
然后我在jQuery代码中输出如下:
success: function(json)
{
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
// Here can update the right side of the screen with the newly entered information
alert (json);
var ob = $.parseJSON(json);
alert (ob.creator_member_id);
alert (ob.problem_title);
alert (ob.problem_description);
alert (ob.problem_date);
}
但是var ob=$.parseJSON(json)上有一个错误;似乎是线。我的JS控制台出现以下错误:
Uncaught TypeError: Object function (D,E){return new n.fn.init(D,E)} has no method 'parseJSON'
这意味着什么?我该如何解决
谢谢 如果您通过jQuery ajax调用获得JSON结果,您不需要解析结果JSON,jQuery会帮您完成 只需指定
dataType: 'json'
[http://api.jquery.com/jQuery.ajax/],并且您的success
处理程序将具有已解析的对象
如果您想解析JSON,请尝试添加到您的项目中。然后您必须调用
JSON.parse(JSON)
。我也是Jquery新手。eval只是简单的JS,它适合我的需要。我看不出这段代码有什么坏处,但当然也有可能在响应中注入坏代码。也许这不是很好的练习。例如,可以将其用于反向shell。您可以使用eval解析Json。eval(““+JSON+”)@Jitamaro不太熟悉jQuery世界。这看起来怎么样?我投票反对aval,尽管它在早些时候非常流行。安全的方法是使用JSON.parse,见下文。JIC,对于@Jitamaro的建议,它不是jQuery,而是简单的JSI,实际上只需要提取json的值。最好的方法是什么?我的意思是…有n行数据..我应该如何最好地循环这些数据并在其中一个div中显示它们?1)按照我的建议使用dataType:json。然后你的成功函数会得到一个普通的js变量2)你说这是一个数组?以正常的方式对它进行迭代(var i=0,l=res.length;iob
初始化进行了注释,但随后尝试访问其属性。