发布动态生成的多选下拉列表

问题描述

我的codeigniter视图中有一个简单的脚本,当我点击一个按钮时,添加一个,带有一个2文本字段和一个多下拉选择

<input type="text" id="name" name="name[]">
<input type="text" id="surname" name="surname[]">
<select name="food[]" multiple>
    <option value="1">Breakfast</option>
    <option value="2">Lunch</option>
    <option value="3">Dinner</option>
    <option value="4">Snacks</option>
    <option value="5">Dessert</option>
</select>

现在,当我将所有变量从视图发布到文本字段的控制器时,我没有问题

[name] => Array
    (
        [0] => name1
        [1] => name2
    )
[surname] => Array
    (
        [0] => surname1
        [1] => surname2
    )
[food] => Array
    (
        [0] => Lunch
        [1] => Dinner
        [2] => Dessert
        [3] => Dinner
        [4] => Lunch
    )

我对多选(食物)有问题,因为我不知道数组的索引

我知道在索引 [0] 处有第一行的 name1 和 surname1 但多选了 select 什么是正确的索引? 任何人都可以帮助我吗?有没有办法储存食物的正确价值?例子

name1 surname1 午餐、晚餐、甜点

name2 surname2 晚餐、午餐

对不起英语

解决方法

尝试循环您的食物清单。

我的控制器:

public function create()
{
    $food_list = $this->input->post('food');
   
    foreach($food_list as $food) {
    
       $data= array(
        'name' => $this->input->post('name'),'surname' => $this->input->post('surname'),'food' => $food
    );
    $this->db->insert('table_name',$data);
    }
}
,

当前:-

<input type="text" id="name" name="name[]">
<input type="text" id="surname" name="surname[]">
<select name="food[]" multiple>
  <option value="1">Breakfast</option>
  <option value="2">Lunch</option>
  <option value="3">Dinner</option>
  <option value="4">Snacks</option>
  <option value="5">Dessert</option>
</select>

尝试对输入名称进行分组以获得所需的输出:-

<input type="text" id="name" name="name[1][]">
<input type="text" id="surname" name="surname[1][]">
<select name="food[1][]" multiple>
   <option value="1">Breakfast</option>
   <option value="2">Lunch</option>
   <option value="3">Dinner</option>
   <option value="4">Snacks</option>
   <option value="5">Dessert</option>
</select>

参考 this 它可能会帮助您对输入值进行分组