2

これは簡単だと思いますが、codeigniterは初めてなので、助けてください。データを取得するフォームページがあり、送信するとそのデータがデータベースに保存されます。次に、メインページにリダイレクトする2つの方法を試しました。

first: $this->load->view('home');

second: redirect('/login/form/', 'refresh');

ホームページを正常にリダイレクトまたはロードしますが、URLはデータ入力のビューである/ property/new_propertyのままです。また、上記のようにURLを使用してホームページで[更新]をクリックすると、データが再送信されるため、データベースに複数のレコードがあります。ホームにリダイレクトしてURLプロパティ/ホームを作成するにはどうすればよいですか?

ありがとう

4

3 に答える 3

1

$this->session->set_flashdata('message', 'New Post has been added');
redirect('somefunction', 'refresh')
保存が成功した後のset_flashdataは、送信されたデータを破棄するのに役立ち、リダイレクトによりURLが変更されます。

于 2014-02-02T23:51:14.520 に答える
0

使用するにはURLヘルパーが必要です

redirect('/home') 

これは、CIでリダイレクトする正しい方法です。 http://ellislab.com/codeigniter/user_guide/helpers/url_helper.html

  • 2番目のパラメータ。100%必要ではありません

そのヘルパーをロードするには$this->load->helper('url'); 、configフォルダーのautoload.php内に使用または書き込むことができます(このようにして、すべてのページにロードされます)。

たとえば、これが私のサイトの1つの簡単な送信ページです。

public function save_tips(){
    if($this->input->post('save_tips')){
        //Form validation and contact with model
        $res = $this->model->save_tips();
        if(count($res['errors'])==0){ //no errors means success
            redirect('/my_tips');
        } else{
        $errors = $res['errors'];
        }
    }

    $data = array();

    if(isset($errors)) {
        $data["errors"] = $errors;
    }

    $this->load->view('save_tips',$data);
}
于 2012-11-01T18:53:33.617 に答える
0

$this->load->view()ビューのみをロードし、URL は変更されません。使用redirect()すると、別のページにリダイレクトされ、URL が変更されます。

そしてあなたのソリューションのために、挿入する前にモデルに挿入するデータを選択できます。存在する場合は、挿入クエリを実行せずに別のページにリダイレクトするだけです。

于 2012-11-02T20:11:57.007 に答える