这是我的Controller在出错时返回
return "0".",".$messages = $validator->messages();
所以输出将是
0,{"firstname":["The firstname field is required."]"lastname":["The lastname field is required."]}
分裂,
var dat = data.split(",");
if(dat[0] == "0")
{
$('#stage').html(dat[1]);
}
所以,如果我有第一个错误,输出将是
{"firstname":["The firstname field is required."]
如何分割或处理它以仅显示错误
即,firstname字段是必需的。
更新:
正如Codebird建议:
返回$ validator-> messages();
if(data != '')
{
obj=JSON.parse(data);
var error_string='';
$.each(obj, function(entry) {
error_string+=obj[entry]+'<br />';
});
$('#stage').html(error_string);
} else {
$('#stage').html('Success Saving');
}
控制台:
答案 0 :(得分:1)
正如我上面评论的那样,我会用这种方式处理这个问题:
首先,你必须json_encode $validator->messages()
因为它是一个数组,所以你的php变成这样:
回归
return json_encode($validator->messages());
然后是JS:
if(data != '')
{
obj=JSON.parse(data);
var error_string='';
$.each(obj, function(entry) {
error_string+=obj[entry]+'<br />';
});
$('#stage').html(error_string);
} else {
//Success goes here.
}
答案 1 :(得分:0)
尝试这种方法:
// php - I assume $validator->messages() returns json
$response = array(
'messages' => json_decode($validator->messages()),
'success' => false,
);
echo json_encode($response);
和
// javascript
if (!data['success']) {
$.each(data['messages'], function(index, value) {
$('#stage').append(value + '<br/>');
});
}