0

I'm new in Codeignite. I have a "Test" Controller with "index()" and "view($id)" functions. the index method goes to "test1.php" view. In "test1.php", I have a dropdown options. if I submit on this page, the "view" method of "Test" Controller will be called. My question is how can I pass the option value to "view" function , so that the argument of method will be set to the option value and then the url would be something like "http://localhost/test/view/id" which the id is option value from "test1.php"

Test Controller

class Test extends CI_Controller{
   public function indx() {
     //some code
      $this->load->view('test1.php');
   }
   public function view($id)
   {
     //some code, here I  use $id which I want to be option value from test1.php
   }

test1.php

<?php 
$options = array(
              '1'  => 'One',
              '2'    => 'Two',
              '3' => 'Three',
              '4' => 'Four',
            );

$js = 'id="shirts" onChange="this.form.submit();"';
echo form_dropdown('shirts', $options, '1', $js);
/* here I want to call echo form_open() as echo form_open("/test/view/[option  value]") but I don't know how to do this;*/
4

2 に答える 2

0

ビューにデータをロードできます。

class Test extends CI_Controller{
   public function index($id) {
      $this->data['result'] = get_results($id);
      $this->load->view('test1.php', $this->data);
   }
}

ビューファイルで:

foreach ($results as $result) {
   // action
}
于 2013-07-21T11:41:42.130 に答える
0

URL で ID を渡すことが不可欠な場合は、javascript を使用して、選択フィールドの変更イベント リスナーを使用してフォーム アクション URL に ID を追加する必要があります。

ただし、私見では、 view()メソッド内で POST データから値を取得するだけの方がよいでしょう。

URL を介して強制するのではなく、$id = $this->input->post('Shirts', TRUE)を使用します。

于 2013-07-22T00:45:14.590 に答える