0

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

测试控制器

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 使用选择字段上的更改事件侦听器将 ID 附加到表单操作 URL。

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

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

于 2013-07-22T00:45:14.590 回答