jquery,php和表单验证/重定向

时间:2012-11-30 12:06:01

标签: php jquery jquery-mobile jquery-validate

我正在使用jquery mobilejquery.validate来验证表单。

我还有PHP验证,如果使用会话

禁用JS,则会检查字段

表单发布到自身($_SERVER['PHP_SELF']

我想要做的是,一旦表单通过验证,重定向到成功页面

使用js和php验证工作正常,所以这不是我的问题

我将$_POST存储在会话变量中,并且我使用header("Location: success.php")重定向到成功页面。

当JS被禁用时,这工作正常,我可以访问success.php中的会话中的POST数据(使用var_dump()检查),问题是,当启用JS时,重定向到成功.php,似乎没有发送任何内容。

我在HTML中得到以下内容:

<div data-role="page" data-url="/apply.php" data-external-page="true" tabindex="0" class="ui-page ui-body-c ui-page-active" style="min-height: 394px; ">undefined</div>

有没有人知道为什么重定向似乎不起作用?

由于

我的php文件如下

  • php检查表单是否已发送
  • 存储所有发布变量
  • 将会话变量设置为发布变量并将其存储在输入value=""字段
  • 做验证
  • 如果通过验证,则使用header()重定向
  • 显示html表单

2 个答案:

答案 0 :(得分:0)

问题是因为标题必须在JS /纯文本/类似启动之前发送(重定向函数是标题)。

我的解决方案是使用Javascript重定向而不是PHP。

答案 1 :(得分:0)

确定。所以环顾四周,似乎jQuery mobile就是问题所在。向我添加data-ajax =“false”似乎修复了重定向问题