我需要一些建议来处理表单提交和页面重定向。我有两个页面,第一个是带有简单表单的登录页面,当用户选择标准并提交它时,他被重定向到第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加载事件,检查是否有任何发布的值,如果没有重定向回来..这是正确的处理方式吗?感谢
答案 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提交表单并回复验证错误或成功消息。如果出现错误,请在当前页面上显示它们,否则将用户重定向到您想要的任何页面。