Ajax成功但我无法将数据插入MySQL数据库

时间:2016-08-22 22:36:18

标签: javascript php jquery ajax mysqli

SETUP ENVIROMENT :000webhost

我正在使用chrome的开发人员工具通过一个简单的按钮(“开启”)跟踪我的ajax请求,从javascript方面看起来工作得很好。
(我的网页目前:here

我的问题是,即使ajax成功调用'ajax.php',一旦被调用它不会向我的表'dogcare'mysql数据库插入任何内容。 click here to see my table

这是index.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Estacionamiento</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta name="viewport" content="width=device-width">
</head>
<body>
    <h1 class="title"> Dog Care </h1>
    <script src="https://meet.jit.si/external_api.js"></script>
    <div class="chart">
      <div class="video">
       <script>
          var domain = "meet.jit.si";
          var room = "dogcare";
          var width = 700;
          var height = 700;
          var api = new JitsiMeetExternalAPI(domain, room, width, height);
        </script>
      </div>
      <div class="buttons">
      <input type = "submit" name ="on" id="on" value = "Turn On">
      <input type = "submit" name ="off" id="off" value = "Turn Off">
      </div>
    </div>

  <script src="js/jQuery.js"></script>
  <script type="text/javascript">
      $(document).ready(function(){
        alert("jquery is working");
              $("#on").click(function(){
                  var accion = "feed";
                  var flagtime = "no";
                  var lunchtime = "13:00";
                  $.ajax({
                      url: "ajax.php",
                      type: "POST",
                      async: false,
                      data: {
                          "done": 1,
                          "accion": accion,
                          "flagtime": flagtime,
                          "lunchtime": lunchtime
                      },
                      success: function(data){
                        alert("ajax successfull");
                      }
                  })
              })

      })


  </script>
</body>
</html>

这是ajax.php

<?php

    if (isset($_POST['done'])) {
        $link = new mysqli("localhost", "myuser", "mypassword", "my_db");

        if (mysqli_connect_errno()) {
                printf("Connect failed: %s\n", mysqli_connect_error());
                exit();
        }
        $accion = $_POST['accion'];
        $flagtime = $_POST['flagtime'];
        $lunchtime = $_POST['lunchtime'];

        mysqli_query($link, "INSERT INTO 'dogcare' ('accion', 'flagtime','lunchtime') VALUES ('{$accion}', '{$flagtime}','{$lunchtime}')");
        exit();
    }
?>

我很感激任何帮助,如果有人能告诉我如何检查是否有与我的数据库的连接(我很确定它是,但我想看到“服务器连接:OK”或类似的东西) 。我也是php语言的新手。

P.S:BTW按钮关闭也没有做任何事情。
     我让2个警报来查看jQuery是否正常工作以及是否有ajax调用。

3 个答案:

答案 0 :(得分:0)

如果查询实际插入了某些内容或者引发了一些错误,您可以检查php:

$query = "INSERT INTO 'dogcare' ('accion', 'flagtime','lunchtime') VALUES ('{$accion}', '{$flagtime}','{$lunchtime}')";

$result = mysqli_query($link, $query) or die("Error: ".mysqli_error($link));

答案 1 :(得分:0)

检查您的代码,不要将'用于columntable名称,请使用&#34; ``&#34;它,如下所示。 P.S我不明白你使用{braces}

的原因
mysqli_query($link, "INSERT INTO `dogcare` (`accion`, `flagtime`,`lunchtime`) VALUES ('{$accion}', '{$flagtime}','{$lunchtime}')");

答案 2 :(得分:0)

我不知道您的问题是否在您的查询中,但问题可能是因为在您的php方法中,您无法使用REQUEST变量从ajax post body请求中获取数据。这是因为ajax post数据进入了有效负载请求体。因此,您可以使用以下方法获取数据:

$request_body = file_get_contents('php://input');
$data = json_decode($request_body);

之后,您可以使用以下方式检查您的请求:

if ($data->done)

我希望它适合你