在AJAX调用之后将页面重新加载到另一个页面

时间:2014-10-31 16:11:40

标签: javascript php jquery ajax

请参阅:AJAX query isn't functioning when passed a string我之前的问题 - 已经解决了,这是另一件让我感到困惑的事情的后续行动。

我的初始页面加载,有一个下拉菜单,用户选择一个名称,并将该名称发送到另一个页面,以将其加载到主页面上的DIV内。这一切都有效。有一个更新按钮:

<form id="updateChanges" method="POST" action="update.php">
<input class="button" name="update"<?= $LineID ?>" type="submit" id="update" value="UPDATE">

当它被点击时,它会启动JavaScript文件来执行AJAX调用,而无需刷新整个页面。

$(function() {

    // Get the form.
    var form = $('#updateChanges');

    // Set up an event listener for the contact form.
    form.submit(function(event) {

        // Stop the browser from submitting the form.
        event.preventDefault();

        // Serialize the form data.
        var formData = form.serialize();

        // Submit the form using AJAX.
        $.ajax({
            type: 'POST',
            url: form.attr('action'),
            data: formData,
            success: function() {
                console.log("success!");
            }
        });
    });
});

这也有效。

现在令我困惑的是如何获得最后一页&#34;刷新并显示此人对数据库所做的更新。我尝试了各种各样的东西,但是所有东西都导致了整页刷新,这是我无法做到的。


|_______________________________|
|          ajaxtest.php         |
|                               |
|   _______#DIV____________     |
|   |    getuser.php       |    |
|   |                      |    |
|   |                      |    |
|   |______________________|    |
|_______________________________|

我需要成功函数内的一些内容,这些内容允许我在ajaxtest.php&#34; 上说&#34;刷新getuser.php?q = John%Done在这个DIV内部我尝试了作品。

我不能这样做......

success: function () {
setTimeout("window.location = 'getuser.php'",100);

因为我传递的原始字符串不在此JavaScript文件中,并且只解决了我的一半问题。如果我只是将代码设置为getuser.php?q=John%Doe它可以工作,但它会将其作为主页加载,而不是作为主页上DIV内的页面。

我迷失了如何解决这个问题....

2 个答案:

答案 0 :(得分:0)

我会研究PHP包含。听起来你不想访问该页面,所以只需在你的ajax访问的php文件中使用include。这样你就可以在php页面中使用你需要的任何逻辑。

成功后,对你要改变的div进行JQuery调用。

答案 1 :(得分:0)

如果你有另一个带有脚本的php页面,它只是用select语句读取数据库表,那么你可以使用你的成功函数放置一个JQuery get函数。

所以在成功的时候你可以做这样的事情。

success:function(){

$.Get("readDatabase.php",function(results){


   //replace the html of the page with results
   //change the selector id to the id of the div on the
   //page you want to update
   $("#results").html(results);


}

});