2011-06-04 148 views
9

的多个值我怎么可以在控制器获得笨多个检查框的值与此代码获取复选框

<input type="checkbox" name="assign[]" value="Keyur">&nbsp;Keyur<br/> 
     <input type="checkbox" name="assign[]" value="Ritesh">&nbsp;Ritesh<br/> 
     <input type="checkbox" name="assign[]" value="Saurabh">&nbsp;Saurabh<br/> 
     <input type="checkbox" name="assign[]" value="Maulik">&nbsp;Maulik<br/> 

$data1 = $this->input->post('assign[]'); 

我这样做,但不能获取值,其中i犯错????

回答

6

使用此:

$this->input->post('assign'); 

这将是一个数组,同样的事情$_POST['assign']

例子:

// This assumes we know the post key is set and is an array, 
// but you should definitely check first 
foreach ($this->input->post('assign') as $key => $value) 
{ 
    echo "Index {$key}'s value is {$value}."; 
} 

不幸的是,如果你需要访问特定的索引,你必须把它分配给一个变量第一或使用$_POST代替$this->input->post()。例如:

$assign = $this->input->post('assign'); 
echo $assign[0]; // First value 
echo $_POST['assign'][0]; // First value 

更新:由于PHP 5.4,你可以直接从函数调用这样的访问索引:

$this->input->post('assign')[0]; 

不,它的建议或更好,但只是让你知道这是可能的。

无论哪种方式,确保您尝试访问它之前的索引设置后的数据(如果你需要这样做这种方式)。

1

试试这个:

for($i = 0; $i< count($_POST['assign']); $i++){ 
    echo $_POST['assign'][$i] . "<br />"; 
} 
3

试试这一个,在你的控制器:

$data1 = $this->input->post('assign'); //this returns an array so use foreach to extract data 

foreach($data1 as $key => $value){ 

     echo $value.' '."</br>"; 

} 

我已经这样做了我的程序和它的工作。