如何在Codeigniter中发送具有相同名称属性的多个选择框值

时间:2018-07-06 07:57:12

标签: php html codeigniter

这是两个具有相同名称的选择框,任何一个都可以指导我如何将两个选择框的值作为一个数组传递给一个

<select multiple="multiple" name="servicetypes[]" id="servicetypes" class="form-control">
<option value="">-- Choose Service Areas --</option>
<option value="1">all over `enter code here`Andhrapredesh</option>
<option value="11">asia</option>
<option value="12">North-South America</option>
</select>
<select multiple="multiple" name="servicetypes[]" id="servicetypes" class="form-control">`enter code here`
 <option value="">-- Choose Service Areas --</option>
 <option value="1">all over Andhrapredesh</option>
 <option value="11">asia</option>
 <option value="12">North-South America</option>
 </select>

3 个答案:

答案 0 :(得分:0)

对于表单中的两个不同输入/选择,始终使用不同的名称或ID。发布表单时,您将获得数组格式的值。并且由于您使用了相同的名称,因此从两个选择框中选择的所有值都将在相同的名称数组中,称为servicetypes []。

答案 1 :(得分:0)

我希望这会对您有所帮助。

源代码

$(document).on('change', 'select[name="servicetypes[]"]', function(){
  
        var selectedValues = {};
        $('select[name="servicetypes[]"]').each(function(){
            var text = $(this).children("option").filter(":selected").text();
            var value = $(this).val();
            selectedValues[text] = value;

        });

        var textValue = $('#servicetypesArray').val(selectedValues);
     
      alert(JSON.stringify(selectedValues, null, 4));

    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<select multiple="multiple" name="servicetypes[]" id="servicetypes" class="form-control">
    <option value="">-- Choose Service Areas --</option>
    <option value="1">all over Andhrapredesh</option>
    <option value="11">asia</option>
    <option value="12">North-South America</option>
    </select>
    <select multiple="multiple" name="servicetypes[]" id="servicetypes" class="form-control">`enter code here`
     <option value="">-- Choose Service Areas --</option>
     <option value="1">all over Andhrapredesh</option>
     <option value="11">asia</option>
     <option value="12">North-South America</option>
     </select>

    <input type="text" id="servicetypesArray" name="data[servicetypes][]" value="" hidden/>

您将把值存储在名为“ servicetypes”的多维数组中

这里是CODEPEN Demo

答案 2 :(得分:0)

我有一种不涉及任何javascript代码伙伴的方式。

首先,您需要使用不同的名称来选择表单元素。

<select multiple="multiple" name="servicetypes1[]" id="servicetypes" class="form-control">
<option value="">-- Choose Service Areas --</option>
<option value="1">all over `enter code here`Andhrapredesh</option>
<option value="11">asia</option>
<option value="12">North-South America</option>
</select>
<select multiple="multiple" name="servicetypes2[]" id="servicetypes" class="form-control">`enter code here`
 <option value="">-- Choose Service Areas --</option>
 <option value="1">all over Andhrapredesh</option>
 <option value="11">asia</option>
 <option value="12">North-South America</option>
</select>

然后在您的php代码中按以下步骤进行操作。

if (isset($_POST)) {
   $select = array_merge($_POST['servicetypes1'], $_POST['servicetypes2']);

   // The rest of your code here....
}

将两个帖子数组合并为一个。希望这会有所帮助!