[英]How to get json objects from Controller in ajax
我正在用jquery ajax和php编写邮件验证控制器。
在验证php控制器中的消息后,我试图通过ajax获取消息并通过jquery在屏幕上打印。
我的ajax代码看起来像这样
....
success: function(data) {
var jsonObj = jQuery.parseJSON(data);
if (jsonObj.result) {
//succes message
}
else {
$.each([jsonObj.errors],function(key,value){
console.log(jsonObj.errors);
});
}
}
错误的console.log显示:
[Object]
0: Object
email: "Email validation error message"
name: "Name validation error message"
phone: "phone validation error message"
__proto__: Object
length: 1
.......
如何获得电子邮件的价值以在屏幕上打印? 我想做类似的事情:如果电子邮件错误不为空,则显示错误消息。
您应该将代码更改为以下内容:
success: function(data) {
var jsonObj = jQuery.parseJSON(data);
if (jsonObj.result) {
//succes message
}
else {
$.each([jsonObj.errors],function(key,value){
if (typeof jsonObj.errors[0].email !== 'undefined') {
console.log(jsonObj.errors[0].email);
}
});
}
}
假设您在控制器中有一个数组:
Array
(
[message] => json object from controller
[data] => Array
(
[name] => user25354i
[profile_views] => 234
)
)
$array = array('message'=>"json object from controller",
'data'=>array('name'=>'user25354i','profile_views'=>'234'));
返回$ array为: echo json_encode($array);exit;
现在在jQuery中,默认情况下它将被视为json对象,因此您可以简单地访问此数组,如下所示:
success: function(response) {
alert(response.message);
alert(response.data.name);
so on...
}
希望它能回答您的问题!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.