我是Codeignite的新手。我有一个带有“index()”和“view($ id)”函数的“Test”控制器。索引方法转到“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;*/
答案 0 :(得分: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
}
答案 1 :(得分:0)
如果您必须在网址中传递ID,那么您需要使用javascript在选择字段上使用更改事件监听器将ID附加到表单操作网址。
然而,恕我直言,你最好只从POST数据中检索 view()方法中的值。
使用 $ id = $ this-&gt; input-&gt; post('shirts',TRUE),而不是强制它通过网址。