1

ビューをロードしていて、次のようにコントローラーから 2 つの引数を渡しています。

$this->load->view('confirm_data_v', $data);

confirm_data_v ビューで、配列である $data を受け取っています。confirm_data_v には [送信] ボタンがありますが、クリックしたときに別のコントローラーを呼び出したいです。confirm_data_v のボタンのコードは次のとおりです。

    <div class = "container">
        <div class="form-actions">
          <button type="submit" class="btn btn-success">Save</button>
        </div>
    </div>

confirm_data_v は、ユーザーが入力した情報をユーザーに確認するためのビューであるため、ユーザーが [保存] ボタンをクリックすると、コントローラーを呼び出してデータベースに保存します。

4

2 に答える 2

0

コントローラーn#2からデータをロードした後、ビューからコントローラーn#1にデータを送信したいという質問から得たもの

これがあなたができる場合

方法#1

<?php echo form_open('controller/function'); ?>   
 <div class = "container">
            <div class="form-actions">
              <button type="submit" class="btn btn-success">Save</button>
            </div>
        </div>
<?php echo form_close(); ?>

で他の値にアクセスできます$this->post->input('input_name')

方法 # 2 送信ボタンの代わりにアンカーを使用する

<div class = "container">
        <div class="form-actions">
           <?php echo anchor('controller/function/parm','Save',array('class'=>'btn btn-success')); ?>
        </div>
</div>

たとえば、コントローラーで

function confirm_save($parm)
{
   //save to database
   //redirect back to the next controller you want with success message for example using session flash data
   //or load another view but URL will be still the same whatever suits your case 
}
于 2012-12-11T11:41:15.637 に答える
0

通常、コントローラーをビューから直接呼び出すことはできませんが、ボタンのクリック時に好きな URL (この例では mysite.com/myurl) にボタンをリダイレクトしたり ajax 呼び出しを行ったり、それをコントローラーにルーティングしたりする必要はありません。 :

$route['myurl'] = 'mycontroller';

2 つのページ間でデータを保存するための主なオプションは、セッションまたは Cookie に保存するか、すべてのデータを非表示のフォーム フィールドにエコーして再投稿することです (機密データの場合は、セッション オプションを使用します)。

http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

ビューからコントローラーを本当に呼び出したい場合は、wiredesigns モジュラー codeigniter を使用して実行できます: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

しかし、一般的に言えば、これは mvc アーキテクチャに直面しており、実行する必要はありません。

于 2012-12-11T00:06:14.487 に答える