2013-07-21 55 views
0

我是Codeignite中的新成员。我有一个带有“index()”和“view($ id)”函数的“测试”控制器。索引方法转到“test1.php”视图。在“test1.php”中,我有一个下拉选项。如果我在这个页面上提交,将会调用“测试”控制器的“视图”方法。我的问题是,如何将选项值传递给“view”函数,以便将方法的参数设置为选项值,然后URL将如"http://localhost/test/view/id"这些id是来自“test1.php”的选项值显示html选项值codeigniter

测试控制器

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;*/ 

回答

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 
} 
0

如果其重要的是你通过在URL中的ID,那么你就需要使用JavaScript的使用的ID追加到表单操作URL在选择字段上更改事件侦听器。

但是,恕我直言,你最好从POST数据中检索视图()方法中的值。

使用$ id = $ this-> input-> post('shirts',TRUE),而不是强制通过URL。