[英]Ajax post to database doesn't post anything
I know this has been asked before, but I can seem to find an solution that fixes the problem in my case. 我知道以前已经有人问过这个问题,但是我似乎可以找到解决该问题的解决方案。 I'm trying to post data to a Mysql database with an an Ajax post 我正在尝试通过Ajax发布数据到Mysql数据库
HTML HTML
<form action="" method="post">
<input type="text" id="message" name="message">
<<input type="submit" value="Send" id="submit">
</form>
Ajax post 阿贾克斯邮报
$(document).ready(function(){
$("#submit").click(function(){
var message = $("#message").val();
var data = "message=" + message;
console.log(data);
if(message != ''){
console.log(data);
$.ajax({
type: "POST",
url: "classes/messages.php",
data: data,
succes: function(){
alert("succes");
}
});
}
return false;
});
});
PHP code PHP代码
class messages{
function getMessages(){
$con = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
$message = $_POST['message'];
mysqli_query($con, "INSERT INTO messages(message, time, user_id)
VALUES('$message', 'now()', '12')")or die(mysqli_error($con));
mysqli_close($con);
}
}
$messages = new Messages();
$messages->getMessages();
Everytime I submit the form nothing happends, not even an php error appears. 每次我提交表单时,都不会发生任何事情,甚至不会出现php错误。 I've checked the Ajax post and both console.logs return the correct value, so I think the variable is reachable. 我已经检查了Ajax帖子,并且两个console.logs都返回正确的值,所以我认为该变量是可访问的。
I've also checked if the php function is executed at all, which is the case. 我还检查了是否完全执行了php函数,情况就是这样。
You could try this shorthand method instead: 您可以改用以下速记方法:
var message = "message=" + $("#message").val();
$("#submit").on("click", function(ev)){
$.post("classes/messages.php", {message: message}, 'json').done(function (data, textStatus, jqXHR) {
console.log("succes");
}).fail(function () {
console.log("Fail");
return false;
}).always();
}
Use on
it's better and recommended than just trigger the function on the selector itself. 使用on
它的更好,建议不仅仅触发选择器本身的功能。
Try this 尝试这个
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#submit").click(function(){
var message = $("#message").val();
var data = "message=" + message;
console.log(data);
if(message != ''){
console.log(data);
$.ajax({
type: "POST",
url: "classes/messages.php",
data: data,
success: function(){
alert("succes");
}
});
}
return false;
});
});
</script>
</head>
<body>
<form action="" method="post">
<input type="text" id="message" name="message">
<input type="button" value="Send" id="submit">
</form>
</body>
</html>
and 和
<?php
class messages{
function getMessages(){
$con = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
$message = $_POST['message'];
mysqli_query($con, "INSERT INTO messages(message, time, user_id)
VALUES('$message', 'now()', '12')")or die(mysqli_error($con));
mysqli_close($con);
}
}
$messages = new Messages();
$messages->getMessages();
Basically I changed input type='button'
from `'submit' . 基本上,我从'submit'更改了input type='button'
'。 Since it was a submit button, the ajax call was never done, instead the form was submitting. 由于它是一个提交按钮,所以从未执行过ajax调用,而是提交了表单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.