2017-08-05 63 views
0

我試圖讓多個複選框值我得到的最後的值總是不是所有的我試圖檢查其是否數組,但它是單值笨多ckeckbox

<?php echo form_open('user/favorit_cats');?> 
    <h1>please select the food cateogry you want to see it the most</h1> 

<?php 
    for($i=0;$i<sizeof($cats_names);$i++){ 
     echo'<input type="checkbox" name="meal_cat" value='.$cats_id[$i].'>'; 
     echo '<label for="'.$cats_id[$i].'">'.$cats_names[$i].'</label><br>'; 

    } 
    ?> 
    <?php echo form_submit('submit','set as favorit'); ?> 
    </form> 

和我的控制器

if($this->input->post('subm it')){ 
       if(is_array($this->input->post['meal_cat'])){ 
        echo'array'; 
       } 
      } 

我想獲得所有檢查的值

回答

0

您將輸入名稱作爲數組傳遞,然後您可以使用var本身訪問所有選中的框,然後該框將會是一個數組。

將表單中的名稱設置爲meal_cat[],您將能夠以數組的形式訪問所有複選框。

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

這將是一個數組,與$_POST['meal_cat']一樣。 要打印數組:

<?php 
if (isset($_POST['meal_cat'])) 
{ 
    print_r($_POST['meal_cat']); 
} 
?> 
// OR 

<?php 
if (isset($this->input->post('meal_cat'))) 
{ 
    print_r($this->input->post('meal_cat')); 
} 
?> 

如果你想在逗號分隔的數據列表,則它嘗試implode

echo implode(',', $this->input->post('meal_cat')); 
0

在html表單上,如果您希望將數組作爲數組傳遞,您應該將其命名爲數組。例如:

<input type="checkbox" name="var[]"/> 
0

嘗試改變名稱:

而是在meal_cat的:由meal_cat []

<input type="checkbox" name="meal_cat" value='.$cats_id[$i].'>'; 

變化:

<input type="checkbox" name="meal_cat[]" value='.$cats_id[$i].'>'; 

而在你的PHP中使用這個變量作爲數組。