Как я могу отправить несколько значений полей выбора с тем же атрибутом имени в codeigniter - PullRequest
0 голосов
/ 06 июля 2018

это два поля выбора с одинаковым именем, может ли любое руководство, как я могу передать два значения блоков выбора как один один массив

<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 голосов
/ 06 июля 2018

Надеюсь, это поможет вам.

Исходный код

$(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

0 голосов
/ 07 июля 2018

У меня был один способ сделать это без привлечения какого-либо приятеля с 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....
}

Объедините ваши два почтовых массива в один. Надеюсь, это поможет!

0 голосов
/ 06 июля 2018

Всегда используйте разные имена или идентификаторы для двух разных вводов / выбора в форме. Когда вы публикуете форму, вы получите значения в формате массива. И поскольку вы использовали одно и то же имя, все выбранные значения из обоих полей выбора будут в одном и том же массиве имен с именем servicetypes [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...