用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1597|回复: 4
收起左侧

[已解决] 复选下拉值怎么回传到model?

[复制链接]
发表于 2014-12-16 11:23:51 | 显示全部楼层 |阅读模式
本帖最后由 fastammo 于 2014-12-17 11:26 编辑
PHP复制代码
//view
<?php foreach($tag as $row){ ?>
<select name="test[<?php echo $row['id'];?>]">
    <option value="1">高</option>
    <option value="2">低</option>
</select>
<?php } ?>
 
//controllers
public function test_controllers()
{
        //这样正确吗?
        $test=  $this->input->post('test');
               
        $data['test'] = $this->test_model->get_value($test);
       
        $this->load->view('test', $data);
}
 
//model
public function test_model($test)
{
        foreach($test as $row){
         ....
        }
}
 
 
复制代码


发表于 2014-12-16 11:44:35 | 显示全部楼层
本帖最后由 Closer 于 2014-12-16 11:46 编辑

如果這 MVC 都是同一個網頁
第一次讀取因為還沒送出
所以 POST 沒值,會造成 $test 為空,產生錯誤
應先判斷 POST 有值才執行

然後關於 <select> 內選了個 <option> 後送出
他會輸出你選的 <option> 的 value
取用方式則是從 <select name="test">

也就是若你選了 <option value="2">低</option>
則用 $this->input->post('test');
會取得 " 2 "



感覺你問的好像不是我上面說的 XD

 
 楼主| 发表于 2014-12-16 13:16:15 | 显示全部楼层
分别是view、model、controllers三个档案,确实你说的跟我的问题状况不一样,我想知道多个下拉选单怎么传值到model,单抓一个下拉可以用$test= $this->input ->post('test');取值,但多个该如何取呢?
发表于 2014-12-16 13:25:36 | 显示全部楼层
我只會用最笨的方式:
for($x=0;$x<=4;$x++){
    $test[$x] = $this->input->post('test'.$x);
}
$data['test'] = $this->test_model->get_value($test);
 楼主| 发表于 2014-12-16 15:12:06 | 显示全部楼层
可以参考一下,这是我网路找的方法
PHP复制代码
 
$test=  $this->input->post(NULL, TRUE);
 
foreach($test as $key=>$val)
{
  $data['test'] = array('id'=>$val);
}
 
复制代码

本版积分规则