2012-04-08 11 views
0

私は単純な検索フォームを使用しています。私のcodeigniterアプリケーションで複数のページに再利用したいです。たとえば、今はサイドバーに検索フォームがあり、そのサイドバーをインデックス、aboutな​​どのページに表示する予定です。複数のページでcodeigniterフォームを再利用する方法

ユーザーがフォームを送信したのと同じページにフォーム検証エラーが表示されます。例えば

  1. ユーザーについてのページにあります。
  2. ユーザーは
  3. ユーザはインデックスページである

  1. についてのページにサイドバーにエラーを見て、無効なデータでフォームを送信します。
  2. ユーザーは
  3. 無効なデータでフォームを送信するユーザーは

インデックスページ上のサイドバーにエラーを見ているしかし、私はそのフォームの検証ロジックを再利用したいと思います。私は、ユーザーが投稿したページのどこにでもエラーを表示したいだけです。

どうすればいいですか?申し訳ありませんが、私はCIの初心者です。あなたは、セッションライブラリがロードされている前提でFlash data

を使用することができます上記の質問に対するあなたのコメントに関して

答えて

0

、ここではヘルパー関数です。

function last_page($page = null){ 
    $ci = get_instance(); 
    if($page === null) 
     return $ci->session->flashdata('last_page'); 
    $ci->session->set_flashdata('last_page', $page); 
} 

その後、あなたはあなたが上にあった最後のページは、あなただけなしのparamsでlast_page();を呼び出すことができます何であったかを知りたいとき、約ページの上部にlast_page('about');を呼び出し、およびすることができます。

1

ここでは、グローバルに考える必要があります。

STEP.1:display.php 含まれています:

<div id = "main"> 
     <div id = "header"> 
      [load header file here] 
     </div> 
<?php 
     if(validation_errors() != '') { 
?> 
      <div id = "error"> 
       <?=validation_errors()?> 
      </div> 
<?php 
     } 
?> 
     <div id = "content"> 
      <?=$page?> 
     </div> 
     <div id = "footer"> 
      [load footer file here] 
     </div> 
    </div> 

STEP.2:1つのビューファイル作成します私達についてのページ(controlller)

を....あなたのデータ....

コントローラの最後に

$data['page'] = 'aboutus'; 
    $this->load->view('display',$data); 
0

User Guideには、ルールのセット/グループを設定するさまざまな方法があります。次に、あなたのようなものを簡単に作成することができます:

if ($this->form_validation->run('signup') == FALSE) 
{ 
    $this->load->view('myform'); 
} 
else 
{ 
    $this->load->view('formsuccess'); 
} 

あなたの「サインアップ」グループの検証を実行するのはどれですか。私にとって、これは再利用可能な検証ルールを達成する最もクリーンな方法です。

0

これは完全に有効な質問です。 私はPHPの専門家でもCIのエキスパートでもありませんが、投稿しているビューを作成していないコントローラに投稿したいという事実があります。つまり、自分自身に投稿することは機能しません。

私はEllislabフォーラムでこの記事に出くわした:このページ http://ellislab.com/forums/viewthread/217176/

、それについて行くの2つの方法があります。どちらもフラッシュデータを使用し、どちらも完全に有効です(IMHO)。

最初:CI_Form_Validationクラスを拡張する:ヘルパー関数 http://ellislab.com/forums/viewreply/1003010/

秒を作成します。 http://ellislab.com/forums/viewreply/1047536/

フォームの検証クラスがフラッシュデータについて何か知っている必要があるかどうかを議論するかもしれないが、2番目は私が行ったやり方です。

関連する問題