我看过这篇文章:从PHP(jQuery/AAJAX)插入MySQL,但我没有得到代码。这是一个相当古老的帖子,所以它可能不再工作了?
我想在不更新页面的情况下,将我的网站(PHP)中的帖子插入到我的数据库(MySQL)中。我正在研究AJAX(例如上面的链接),但我不知道如何让它发挥作用。
我也看过这个视频:https://www.youtube.com/watch?v=lwo4fAqaVFM用于加载数据,这很简单,所以我认为插入也很简单,但事实并非如此。。。
有人能帮我吗?
这个新的save.php确实有效。
index.php
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<form id="example" method="post">
<input name="textbox">
<input type="button" name="submitbuttonname" value="submit" onClick="$.post('save.php', $('form#example').serialize())">
</form>
</body>
新建save.php
$db = new mysqli('localhost','root','','audf');
mysqli_set_charset($db, 'utf8') or die('Charset kunde inte ändras till UTF-8');
if($db->connect_errno){
die('Sorry, we are having some problems.');
}
$firstName = $_POST["firstName"];
$db->query("INSERT INTO test_db (first_name) VALUES ('".$firstName."')");
旧的save.php
$db = new mysqli('localhost','root','','audf');
mysqli_set_charset($db, 'utf8') or die('Charset kunde inte ändras till UTF-8');
if($db->connect_errno){
die('Sorry, we are having some problems.');
}
if($_POST["submitbuttonname"]) {
$q = $db->prepare("INSERT INTO test_db (first_name) VALUES (?)");
$q->execute(array($_POST["textbox"]));
}
您的表单正在以$_GET
的形式发送数据
将method="POST"
添加到<form>
元素中。
编辑:哦。好的,我没有完全阅读您的代码:
您的表单可能是在触发$.post请求之前发送的
尝试将输入类型从"提交"更改为"按钮"。
问候;)
为了更简洁的代码,我做了一些修改。
html
<form id="example" method="post">
<input name="textbox">
<input type="button" name="submitbuttonname" value="submit">
</form>
ajax使用POST方法调用save.php
$('#example').submit(function(e){
e.preventDefault();
var frmdata = $('#example').serializeArray();
$.ajax({
url: 'save.php',
type: 'POST',
data : frmdata,
dataType: 'json',
success: function(data){
alert("Saved!");
},
error: function(err) {
console.log(err.responseText);
}
});
});
save.php-缺少绑定参数
if($_POST["textbox"]) {
$textb = $_POST['textbox'];
$q = $db->prepare("INSERT INTO test_db (first_name) VALUES (?)");
$q->bind_param("s",$fname);
$fname = $textb;
$q->execute();
if($q){
$array = array('data'=> $textb);
echo json_encode($array);
}
}
链接一直工作到现在。您的代码可能有问题。你可以发布一段你尝试过的内容,这样我们就可以找出缺少的内容。快乐编码!