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调用。
答案 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)
检查您的代码,不要将'
用于column
或table
名称,请使用&#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)
我希望它适合你