如何使用PHP文件中的错误消息进入AJAX响应?

时间:2022-10-08 21:11:23

I've following code for file upload : HTML code :

我有以下代码用于文件上传:HTML代码:

<a href="#" id="promotion_status_1">
                        <button type="button" class="btn btn-default brmodalbtn" data-toggle="modal" data-target="#BrandImageModal" id="1">On</button>
                      </a>

<div class="container">
  <div class="modal fade" id="BrandImgeModaal">
    <div class="modal-dialog">
      <div class="modal-content">
        <form id="form" enctype="multipart/form-data" role="form">
          <input type="text" class="form-control" name="brand_id" id="brand_id" value="{$data.id}">
          <input type="text" name="admin_url" id="admin_url" value="http://localhost/abc.com">    
          <input type="text" name="op" value="upload_brand_image">    
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
            <h4 class="modal-title">Brand Image</h4>
          </div>
          <div class="modal-body">
            <div id="messages"></div>
            <input type="file" name="file" id="file">
          </div>
          <div class="modal-footer">
            <button type="submit" class="btn btn-primary">Save</button>
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>

jQuery AJAX Code :

jQuery AJAX代码:

$('#form').submit(function(e) {
  var form = $(this);
  var formdata = false;
  if(window.FormData) {
    formdata = new FormData(form[0]);
  }

  var formAction = form.attr('action');

  $.ajax({
    type        : 'POST',
    url         : 'manufacturers.php',
    cache       : false,
    data        : formdata ? formdata : form.serialize(),
    //data      : formdata ? formdata : form.serialize() + '&' + $.param({'op':'upload_brand_image'}),
    contentType : false,
    processData : false,

    success: function(response) {
      if(response != 'error') {
        //$('#messages').addClass('alert alert-success').text(response);
        // OP requested to close the modal
        $('#BrandImgeModaal').modal('hide');
      } else {
        $('#messages').addClass('alert alert-danger').text(response);
      }
    }
  });
  e.preventDefault();
});

Now the PHP code is as follows :

现在PHP代码如下:

$request = $_REQUEST ;
switch( $op ) {
    case "add": 
case "upload_brand_image":
      //print_d($request);

//here if error comes in validation I've an array of errors which needs to be printed in AJAX response. Following is the array
$error_messages  = array(
    "email"             => "Email Id can't be blank",
    "email_invalid" => "Email Id is not valid"
  );

      die;
      break;
  }

My issue is how should I use the array $error_messages in ajax response and if the error doesn't come then the success message should be passed to ajax function instead of this $errror_messages array.

我的问题是如何在ajax响应中使用数组$ error_messages,如果没有出现错误,则应将成功消息传递给ajax函数而不是$ errror_messages数组。

How to achieve this? Can someone please help me in this regard?

怎么做到这一点?有人可以帮我这方面吗?

Thanks.

1 个解决方案

#1


0  

why not use json format?

为什么不使用json格式?

$.ajax({
    dataType    : 'json',
    ........
    ........
    success: function(response) {
      if(response.email_invalid){
         //do something
      }else{
         //do something
      }
    }
  });

then in your php echo the error

然后在你的php中回显错误

  $error_messages  = array(
     "email"             => "Email Id can't be blank",
     "email_invalid" => "Email Id is not valid"
   );
   echo json_encode($error_messages);

#1


0  

why not use json format?

为什么不使用json格式?

$.ajax({
    dataType    : 'json',
    ........
    ........
    success: function(response) {
      if(response.email_invalid){
         //do something
      }else{
         //do something
      }
    }
  });

then in your php echo the error

然后在你的php中回显错误

  $error_messages  = array(
     "email"             => "Email Id can't be blank",
     "email_invalid" => "Email Id is not valid"
   );
   echo json_encode($error_messages);