0

javascript (および jquery) と php で記述されたアプリケーションに html テーブルがあります。テーブルの内容は、MySql テーブルに格納されます。

ユーザーにテーブルにデータを追加してもらいたい場合、ボタンをクリックすると、jquery ui ダイアログが表示され、ユーザーが入力するフォームが表示されます。

ユーザーがフォームに入力したら、[保存] をクリックすると、フォームが純粋な php のページに送信されます。これにより、データがテーブルに保存され、テーブルがオンになっている元のページにリダイレクトされます。

$url = BASE_URL . '/admin/pages/finance/pricing/pricing_schedule.php';

header('Location: '.$url);      //Redirect to the right page

exit();     

メッセージが欲しくないので、私はこれをやっています:

Confirm Form Resubmission - 入力した情報を探しているページ。ページに戻ると、実行したアクションが繰り返される可能性があります。続けたいですか?

ユーザーがなんらかの理由で更新を押した場合に表示します。

ただし、これを行っているため、保存に失敗した場合にユーザーにフィードバックを提供する方法を提供するのに苦労しています。

ユーザーがjquery uiダイアログボックスで保存を押すと、フォームが送信されるとボックスが閉じてしまうため、エラーがまだ発生していないため、そこでフィードバックを提供できません。

PHP ページにいるとき、テーブルをオンにして元のページにリダイレクトするとすぐに、検出されたエラーはすべて失われます。

誰でも提案できますか?

4

4 に答える 4

2

エラーを$_SESSION変数に保存し、リダイレクトされたページに出力できます。

于 2013-04-25T17:19:40.053 に答える
0

別のアイデアは、URL のハッシュを介してメッセージを転送することです。

if (isset($_POST['submit'])) {
    ...
    header("Location: ".$_SERVER["REQUEST_URI"]."#".urlencode($msg));
    ...
}
于 2013-04-25T10:51:06.090 に答える
0

単純な GET パラメータはどうですか?

次の行に何か:

header('Location: ' . $url . '?success=false&reason=blah');

そのページの では$url、最初に の値を探します$_GET['success']。そうでない場合は"success"、成功しなかったことを示す追加の HTML をエコーアウトします。

if ($_GET['success'] == "true") {
    echo "<p>SUCCESS!</p>";
    ..
} else {
    echo "<p>FAILED!</p>";
    ..
}
于 2013-04-25T10:41:45.213 に答える
0

ページの更新を避けるために、AJAX 経由でフォームを送信することを検討してください。

このチュートリアルをチェックしてください: http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

解決策 (未テスト)

jQuery コード:

var form_data = $('#save_period_form').serialize(); alert(form_data);
$.ajax({
type: "POST",
url: "period_submit.php",
data: form_data,
dataType: 'html',
success: function(returninfo) {
  if(returninfo=='1'){
     alert('finish');
     //will redirect to pricing schedule page after the user has pressed 'ok' on the alert popup.
     window.location.assign('/admin/pages/finance/pricing/pricing_schedule.php');
 } else {
    alert('error occured');
 }
} 
});

PHP コード:

//Commented header redirection code because it's being done in the javascript code now.
//$url = BASE_URL . '/admin/pages/finance/pricing/pricing_schedule.php';

//header('Location: '.$url);      //Redirect to the right page

//Assuming your save has been successful, we echo value '1'. Else echo something else..
echo '1';
exit(); 
于 2013-04-25T10:41:46.673 に答える