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_rvar_dump )是可以理解的:

 echo json_decode($success); 

这将返回一个代表你的php数组的json字符串,js会自动转换为一个对象。
希望这可以帮助。

使用

 json_decode($success, true); 

如果为TRUE,则返回的对象将转换为关联数组。