0

検証エラーが発生した場合、設定値はフィールド値を維持しません。

*表示*:**

echo form_input('post_title', set_value('post_title')); 

コントローラ:

if ($this->form_validation->run('post_ad') == FALSE)
{
    set_temporary_msg(validation_errors('<div>', '</div>'));  
}

ヘルパー:

function set_temporary_msg($msg, $target_location = '') 
{
    $CI =& get_instance();
    $CI->session->set_flashdata('temp_msg', $msg);
    redirect($target_location); 
}

function get_temporary_msg() {

    $CI =& get_instance();
    echo $CI->session->flashdata('temp_msg');

}

一部の入力が無効な場合、set_temporary_msg()が呼び出されます。ビューページの上部で、get_temporary_msg();をエコーし​​ます。

エラーメッセージとリダイレクトは正常に機能しますが、すべてのset_value()が失われます。この問題を解決する方法はありますか?

4

1 に答える 1

0

これは正常です。フォームの送信後にリダイレクトを行うと、$ _ POSTが空になるため、set_valueはpost_titleの値を見つけることができません。送信された値を保持したい場合は、リダイレクトURLまたはセッションで値を渡す必要があります。英語が下手でごめんなさい。

于 2012-09-03T04:54:10.093 に答える