使用逗号(,)分隔拆分数据并相应地显示它

时间:2014-11-05 09:19:29

标签: php jquery laravel laravel-4 split

这是我的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');
 }

控制台:

enter image description here

2 个答案:

答案 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/>');
     });
}

看看这里:http://jsfiddle.net/hzf5tuuc/