Json 返回每个函数

Json return each function

本文关键字:函数 返回 Json      更新时间:2023-09-26

从返回以下代码的 ajax 函数获取 json 响应:

["Please enter a Name","Please enter a Email","Please enter a Date","Please enter a message"]

问题是我当前的代码只会显示最后一条消息,而不是所有消息。

Jquery代码是:

    var result = jQuery.parseJSON(response);
            console.log(response);
            $.each(result, function(key, value){ 
                if(key == 'success') {
                    // console.log(response);
                    success.find(".message").text(value);
                    success.slideDown();
                    success.delay(4000).fadeOut();
                }
                else {
                    // console.log(response);
                    error.find(".message").text(value);
                    error.slideDown();
                }

            })

如何分别显示每条错误消息?

您的代码正在替换文本。而是尝试使用追加 success.find(".message").append(value + '<br />');

与错误error.find(".message").append(value + '<br />');相同

我会考虑改变你如何构建响应。

在此处查看代码的js小提琴:http://jsfiddle.net/xrmgeazs/或 http://jsfiddle.net/xrmgeazs/1/成功选项

例如来自 php:

$response = json_encode( array(
 'success' => false,
 'errors' => array(
   'name =>"Please enter a Name",
   'email => "Please enter a Email"
  )
) );

回声$response;

在你的js中,例如:

var result = jQuery.parseJSON(response);
if( result.success ){
  //do your success code here
} else {
  //start by clearing previous errors
  $('form p.error').hide();
  //loop your errors here
  for (var key in result.errors){
     var errorName = key;
     var errorMessage = result.errors[key];
     //now place your error and show accordingly.
     $( 'div.'+key ).append('<p>'+errorMessage+'</p>');
  }

}

HTML EG:

<form action="something.php" method="post">
<!-- add rel fields as appropriate -->
<!-- also note this is a very simple structure and could be expanded for richer ui -->
<div class="name">
  <input type="text" name="name"/>
</div
<div class="email">
  <input type="text" name="name"/>
</div
</form>