我有一个带有2个值的javascript函数。我想将这些值发布到PHP页面,在那里我可以用它更新mySQL数据库。这是我到目前为止所做的,但是没有用。
function updateDB(page1,page2)
{
alert("TEST");
$.ajax({
type: 'POST',
url: update.php,
page1: page1,
page2: page2
});
}
Update.php代码
<?php include "connect.php";
$page1 = $_POST['page1'];
$page2 = $_POST['page2'];
mysql_query("UPDATE `pages` SET `page1` = '$page1'");
?>
当我运行该功能时,我获得了一个POP,但数据库没有更新。
有什么建议吗?我不介意使用GET或POST。
提前致谢,
答案 0 :(得分:1)
使用jQuery通过POST发送数据的正确方法是使用data
属性。
一个例子是:
function updateDB(page1,page2)
{
$.ajax({
type: 'POST',
url: 'update.php',
data: {
page1: page1,
page2: page2
},
success: function() {
window.location = "http://google.com";
},
cache: false
});
}
我还在成功时添加了alert
,以及禁用缓存。即使这是帖子,IE也会将帖子请求缓存到已经使用get。
我强烈建议使用MySQLi,或者至少转义查询:
include "connect.php";
$page1 = mysql_real_escape_string($_POST['page1']);
$page2 = mysql_real_escape_string($_POST['page2']);
mysql_query("UPDATE `pages` SET `page1` = '$page1'") or die(mysql_error());
如果您想从href更改页面,只需执行以下操作:
<script>
function linkme(_this) {
window.event.preventDefault();
//do all the code with ajax
window.location = _this.href;
}
</script>
<a href="http://google.com" onclick="linkme(this)">Clicky</a>
答案 1 :(得分:0)
你已经忘记了你的字符串(update.php和page1 / 2),你的浏览器控制台应该知道这些字符串:“未捕获的ReferenceError:未定义更新”。在此处查看有关调试的更多信息:https://developers.google.com/chrome-developer-tools/docs/javascript-debugging
您还需要将数据放在数据对象中。
$.ajax({
type: 'POST',
url: 'update.php',
data: {
page1: page1,
page2: page2
}
}).done(function(data){
alert('got:' + data);
});
更多关于jquery文档:http://api.jquery.com/jQuery.ajax/