使用ajax发送的POST数据不会在第二个PHP文件中触发($ _SERVER [“REQUEST_METHOD”] ==“POST”)

时间:2017-06-22 11:55:51

标签: php jquery ajax post

我正在尝试进行某种简单的文字聊天。

我有两个PHP文件(index.phpsend.php)和一个javascript脚本(script.js)。

index.php中,我得到以下表格:

<form id="formSend" method="post">
  <input id="inputMsg" class="form-control input-msg" type="text" name="msg" autocomplete="off">
  <button id="btnSend" class="btn btn-success button-send" type="submit" name="send">Send</button>
</form>

为防止页面重新加载,我的javascript文件中的ajax请求会发送数据:

$('#formSend').submit(function(e){
  e.preventDefault();
  var url="send.php";
  var posting = $.post(url, {msg: $('#input-msg').val() });
  posting.done(function(data){
    $('#inputMsg').val('');
    console.log('success');
  });
});

ajax请求有效(在控制台中记录成功),但在send.php中 没有任何反应。

我在send.php中使用以下代码:

if ($_SERVER["REQUEST_METHOD"] == "POST"){
  if(isset($_POST['msg']) && !empty(trim($_POST['msg']))){
    $msg = htmlspecialchars(trim($_POST["msg"]));
    $check = true;
  }
  else{
    $check = false;
  }

  if ($check = true) {
    $query = "INSERT INTO chat(message) values (?)";
    $stmt = $mysqli->prepare($query);
    if($stmt===false){
      $error = 'Database error';
    }
    if(!$stmt->bind_param('s', $msg)){
      $error = 'Database error';
    }
    if(!$stmt->execute()){
      $error = 'Database error' . $mysqli->error;
    }
    if(empty($error)){
      $mysqli->close();
      $success = 'Success';
    }
  }
}

我错过了什么吗?我真的不知道为什么它不起作用......

1 个答案:

答案 0 :(得分:1)

<input id="inputMsg" class="form-contr .... >

并且

var posting = $.post(url, {msg: $('#input-msg').val() });

不匹配。

删除-和大写M