使用AJAX提交表单后的重定向

时间:2014-02-11 16:22:40

标签: javascript ajax redirect popup confirm

我的网页上有一个表单,使用AJAX提交。 将SQL查询发送到数据库后,如果出现错误,我的页面上会显示一条错误消息。

否则,如果SQL查询成功,我想重定向到我网站上的另一个页面。 我已经使用window.location.href完成了数千次,但在这种情况下,会显示一个确认弹出窗口,要求成员确认操作。 如果会员点击“取消”,表格总是会显示,所以可以一次又一次地发送... 我找不到任何绕过此确认弹出窗口的解决方案。

有谁知道如何解决这个问题?

提前感谢您的帮助。

plastic1st

用于提交表单的函数:

function send_data(formname, callback, database_action)
{
    var xhr = getXMLHttpRequest();

    xhr.onreadystatechange = function()
    {
        if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
            callback(xhr.responseText, database_action);
        }
    };

    var oMessage = tinymce.get('message_content');
    var oMessageContent = oMessage.getContent();

    xhr.open("GET", "http://<?php echo $_SERVER['SERVER_NAME']; ?>/includes/updatedatabse.php?" + getquerystring(formname)+"&database_action="+database_action+"&message_content="+encodeURIComponent(oMessageContent), true);
    xhr.send(null);
}

以及相关的回调:

function updateMemberPage(result, database_action)
{
    var oErrorMessageDiv = document.getElementById('system-message-container');
    if(result)
    {
        window.top.window.scrollTo(0,0);

        // Redirect to the ads list page
        if(database_action == "update")
        {
            // Display an information message
            oErrorMessageDiv.innerHTML = "<div id='system-message' class='alert alert-success'>bla bla success</div>";
            window.location.href = "http://<?php echo $_SERVER['SERVER_NAME']; ?>/my-account";
        }

        // Reload the page to update the ads list
        else if(database_action == "insert")
        {
            // Display an information message
            oErrorMessageDiv.innerHTML = "<div id='system-message' class='alert alert-success'>bla bla success</div>";
            location.reload();
        }
    }
    else
    {
        // Display an error message
        oErrorMessageDiv.innerHTML = "<div id='system-message' class='alert alert-error'>bla bla error</div>";
    }
    window.top.window.scrollTo(0,0);
}

1 个答案:

答案 0 :(得分:0)

问题解决了:))

我的表单中有一个tinyMCE对象,它被配置为在卸载事件上显示警告消息,以免丢失其内容(例如在页面刷新时)。

我只需修改此设置,问题就解决了。