0

と を使用jquery mobilejquery.validateてフォームを検証しています。

セッションを使用してJSが無効になっている場合にフィールドをチェックするPHP検証もあります

フォームはそれ自体に投稿します ( $_SERVER['PHP_SELF'])

私がやろうとしているのは、フォームが検証に合格したら、成功ページにリダイレクトすることです

検証はjsとphpを使用して正常に機能するため、それは私の問題ではありません

$_POSTセッション変数に保存されておりheader("Location: success.php")、成功ページにリダイレクトするために使用しています。

JS が無効になっている場合、これは正常に機能し、success.php のセッション (を使用して確認) にある POST データにアクセスできますvar_dump()。問題は、JS が有効になっている場合、success.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フォームを表示する
4

2 に答える 2

0

問題は、JS /プレーンテキスト/そのようなものが起動する前にヘッダーを送信する必要があるためです(リダイレクト関数はヘッダーです)。

私の解決策は、PHPではなくJavascriptでリダイレクトすることです。

于 2012-11-30T12:48:30.187 に答える
0

Ok。周りを見回したところ、jQuery モバイルが問題だったようです。data-ajax="false" を追加すると、リダイレクトの問題が修正されたようです

于 2012-11-30T15:09:35.980 に答える