JSON返回未定义
您好我有一个ajax请求提交表单并发送和发送电子邮件,如果电子邮件成功提交,我编码一个看起来像这样的PHP数组,
$success = array("state" => "Email Sent");
然后我检查我的ajax请求中的data
状态,看看state
匹配“Email Sent”但是当我发出alert(data)
我得到了未定义,我做错了什么? 下面是我的javascript,
$.ajax({ url: "home/callback", data: $("#callback").serialize(), type: "POST", dataType: "JSON", success: function(data){ $("#fancybox-content div").html(data); alert(data.state); } });
尝试获取’fancybox-content’div的html值。 $( ‘#的fancybox内容’)HTML()。
如果您的警报失败,那么您确定您的json有效吗? 你能把它粘贴到你的问题中吗? 您可以在JsonLint在线validation它。
你如何返回$succes
数组?
您应该以保持其格式的方式echo
显数组,并且javascript(而不是print_r
或var_dump
)是可以理解的:
echo json_decode($success);
这将返回一个代表你的php数组的json字符串,js会自动转换为一个对象。
希望这可以帮助。
使用
json_decode($success, true);
如果为TRUE,则返回的对象将转换为关联数组。