表单提交和页面重定向

时间:2014-01-30 07:56:21

标签: javascript php jquery

我需要一些建议来处理表单提交和页面重定向。我有两个页面,第一个是带有简单表单的登录页面,当用户选择标准并提交它时,他被重定向到第2页,显示表格数据和一些查询相关信息。

提交Page1表单时,数据将在网址中传递:

for ( var key in dataArray )
{ 
    if ( dataArray[key] )
    {
        if (queryStr != "") 
        {
           queryStr += "&" ;
        }

        queryStr += key + "=" + dataArray[key];
    }
}

var url = "page2.html?" + queryStr;
window.location.href = url;

另一方面,我使用$ _GET ['xxx']处理此POST,然后相应地构建一个查询。问题不在于处理POST& GET请求但处理错误..

我不喜欢的是,如果用户在网址中输入内容

www.site.com/page2.html?Q1=red - > www.site.com/page2.html?Q1=red545454

它在逻辑上不会通过服务器端验证,因此只显示一个没有数据的空页面模板,这让我感到困扰..

此外,如果用户尝试加载page2.html而没有任何发布的数据(查询字符串)。

我想在page2.html加载事件,检查是否有任何发布的值,如果没有重定向回来..这是正确的处理方式吗?感谢

2 个答案:

答案 0 :(得分:0)

您不通过POST方式提交表单,因为“在提交时”您在查询字符串中使用window.location.href(重定向)和param Q1

如果您只想查看www.site.com/page2.html之类的网址,请执行以下操作:将操作设置为action="www.site.com/page2.html",然后将变量添加到QUERY_STRING,动态插入任何Q1 hidden 1}}元素如:

document.getElementById('Q1_ID').value = dataArray[key];

document.forms[0].submit();这样的电话后。现在Q1中的变量$_POST['Q1']和url看起来为www.site.com/page2.html

答案 1 :(得分:0)

处理此问题的一种优雅方法是使用Ajax提交表单并回复验证错误或成功消息。如果出现错误,请在当前页面上显示它们,否则将用户重定向到您想要的任何页面。