0

私がそれを機能させた方法は、複数のページで繰り返されるフォームを処理する専用コントローラーを作成することです。つまりsomedomain.com/form/callmeback/、これまでのところ非常に優れています。ただし、バリデーターが処理を完了したら、フォームが送信されたページに戻ってエラーのリストを表示するか、メッセージを送信してから、元のフォーム ページに成功メッセージとともに戻る必要があります。

それを達成するための「最良の」方法は何でしょうか?

これまでのところ、または値として$_SERVER['HTTP_REFERER']a を持つ隠しフィールドを使用することに私の考えが残っていて、それを行うだけですが、検証エラーをポストバックすることはできません。current_url()header('Location:'.$_POST['ref'])

[編集]

最後に、codeIgniter セッション フラッシュ データ機能を使用して問題を解決しました

//redirect back to source
    if($_SERVER['HTTP_REFERER'] && strpos($_SERVER['HTTP_REFERER'], base_url()) !== false) {
        //do form handling stuff here
        $this->session->set_flashdata('callmeback_errors', validation_errors());
        header('Location:' . $_SERVER['HTTP_REFERER']);
    } else {
        //invalid referer, do nothing say nothing, pretend the page doesn't exist
        show_404();
    }

あなたのアイデアをありがとう:)

4

2 に答える 2

1

validation_errors()Flash セッションは良いアイデアですが、機能が正常に動作するかどうかはわかりません。

しかし、私は別の考えを持っています。専用コントローラーと専用ヘルパーの代わりに同じ機能を実行するので、コントローラーを変更して POST 配列をヘルパー関数に送信するだけで済みます。これが役立つことを願っています

于 2012-12-18T22:48:22.323 に答える
0

エラーをセッションにシリアル化し、「フラッシュ」メッセージなどの次のリクエストでそれらを削除します。以前に Symfony で同様のことをしたことがあります。

于 2013-01-17T18:37:34.263 に答える