传递变量后的Ajax / Jquery刷新页面

时间:2015-10-25 05:22:30

标签: javascript php jquery ajax

好的,我正在使用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是:

  

http://website.com/index.php#

并且数据库没有为他们更新,他们必须在URL中看到烦人的哈希符号。我已经google了如何在JS中刷新页面,并发现无法工作或工作的东西,但导致变量没有被发送到PHP文件。我只是需要它,以便在发送到php文件后,最好在php文件完成后,index.php页面刷新,最后没有#。

2 个答案:

答案 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();
        }
    });
}