私がそれを機能させた方法は、複数のページで繰り返されるフォームを処理する専用コントローラーを作成することです。つまり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();
}
あなたのアイデアをありがとう:)