如何显示消息响应php Ajax

Posted

技术标签:

【中文标题】如何显示消息响应php Ajax【英文标题】:how to show message response php Ajax 【发布时间】:2022-01-09 08:57:45 【问题描述】:

我有一段代码用 ajax 发送表单。我想在页面上以消息的形式接收结果。

    <script>
  $(document).ready(function () 
    $('.btn-primary').click(function (e) 
      e.preventDefault();
      var message = $('#message').val();
      $.ajax
        (
          type: "POST",
          url: "<?=baseUrl()?>/page/contact",
          data:  "message": message ,
          success: function (data) 
            $('#contactform')[0].reset();
          
        );
    );
  );
</script>

这是我接收消息并将其保存在数据库中的 php 代码

private function messageSend()
                  $user_id = $_SESSION['user_id'];
                  $message = $_POST['message'];
                  if ($message == null) 
                        return json_encode(array(
                              'status' => false,
                              'message' => 'Please Enter Message'
                        )); 
                  
                  $sendTime = getCurrentDateTime();
                  NoteModel::contact_message($user_id, $message, $sendTime);
                  return json_encode(array(
                        'status' => true,
                        'message' => 'Message Send Success'
                  ));
            

【问题讨论】:

你这样做会得到什么:console.log(data); ? 不要return json_encode...,而是echo json_encode...,后跟return;——或者只使用die(json_encode... 【参考方案1】:

在您的 PHP 中,不要返回 JSON 编码的数组。做一个echo

echo json_encode(array(
           'status' => false,
           'message' => 'Please Enter Message'
       ));

而在你的javascript中,AJAX的成功函数应该是这样的。

success: function (data) 

    var response = JSON.parse(data);

    // now you can access the data as a JSON object
    var status = response.status;
    var message = response. message;

    $('#contactform')[0].reset();

【讨论】:

谢谢我的朋友,当发送正确的表格时,我能够得到答案但是当发送空白表格时,现在我们在我们的 php 代码中打赌表格是空的,给一个消息。 对不起,我不明白你关于空表格的问题?上面的代码不行吗? 表单发送空白时不会收到消息,只有消息发送正确才会出现success: function (data) var response = JSON.parse(data); if (response.status == false) new Toast( message: response.message, type: 'danger' ); $('#contactform')[0].reset(); new Toast( message: response.message, type: 'danger' ); 您是否在控制台或网络选项卡中遇到任何错误? 因异常 SyntaxError 暂停:JSON.parse:JSON 数据第 1 行第 50 列的 JSON 数据后出现意外的非空白字符

以上是关于如何显示消息响应php Ajax的主要内容,如果未能解决你的问题,请参考以下文章

异步提交表单时如何显示 php 错误消息?

jquery/ajax - 如何使用重复键迭代 json 消息?

如何使 php artisan tinker 显示完整的错误(消息)?

使用ajax提交表单后显示flash消息

Ajax PHP JavaScript MySQL实现简易的无刷新在线聊天室

php站内短消息 实时显示