好的,我正在使用Ajax将一个JS变量从index.php发送到page2.php。一旦设置为page2.php,就会在用户整个时间都在index.php上编辑数据库。但是,我需要index.php重新加载或刷新一次page2.php在后台完成更新数据库。为了给你一个更好的线索,我将包括我的一些代码。
在Index.PHP上:
<a href='#' class='dbchange' onclick='dbchange(this)' id='".$ID'>Update</a>
和
function dbchange(obj) {
var id = $(obj).attr('id');
$.ajax({
type: "POST",
url: 'page2.php',
data: "NewID=" + id,
});
}
所以基本上当他们点击按下“#34;更新&#34;它从那里发送page2.php和page2.php按钮的ID,使用该信息更新数据库的更改。但是,用户所在的URL是:
并且数据库没有为他们更新,他们必须在URL中看到烦人的哈希符号。我已经google了如何在JS中刷新页面,并发现无法工作或工作的东西,但导致变量没有被发送到PHP文件。我只是需要它,以便在发送到php文件后,最好在php文件完成后,index.php页面刷新,最后没有#。
答案 0 :(得分:2)
e.preventDefault()
是答案,但如果我建议:
摆脱内联函数并使用jQuery添加事件处理程序。
$(function () {
$('.dbchange').click (function (e) {
e.preventDefault();
var id = this.id;
$.ajax({
type: "POST",
url: 'page2.php',
data: {NewID: id},
success: function(data) {
window.location.reload();
}
});
});
});
答案 1 :(得分:0)
删除#,然后替换为 javascript:void(0):
<a href='javascript:void(0)' class='dbchange' onclick='dbchange(this)' id='".$ID'>Update</a>
<强> JS 强>:
function dbchange(obj) {
var id = $(obj).attr('id');
$.ajax({
type: "POST",
url: 'page2.php',
data: "NewID=" + id,
success: function() {
window.location.reload();
}
});
}