2017-01-23 5 views
3

У меня есть два окна выбора, один из которых - это опция множественного выбора, есть кнопка добавления еще нескольких кнопок с одинаковыми selectbox, значения передаются в формате массива, я хочу распечатать каждую строку с несколькими вариантами выбора ,Множественный вариант выбора

------------------------------------------------------------------ 
    Select1 |  Select2  |   Textbox 
------------------------------------------------------------------ 
Option1    Option1      
Option2    Option2 
Option3    Option3 
Option4    Option4 

я выбираю первый вариант в первом поле выбора и второго выбора коробки несколько вариантов выбора опции (Вариант1 и Вариант2), во второй строке я выбираю второй вариант в первом поле выбора и второго множества вариантов выбора окнеВыбор (OPTION3 и ОПЦИЯ4). я нажимаю на кнопку, я хочу, чтобы напечатать

Option1    Option1 
Option1    Option2 

Option2    Option3 
Option2    Option4 

представить, но теперь печать (принимает все данные из множественного выбора коробки)

Option1    Option1 
Option1    Option2 
Option1    Option3 
Option1    Option4 

Option2    Option1 
Option2    Option2 
Option2    Option3 
Option2    Option4 

Вот мой код:

<div id="lobrows"> 
     <div class="form-group"> 
      <div class="col-sm-4"><label>Reson</label> 
       <select class="form-control selectpicker" data-live-search="true" name="reson[]" required="required"> 
        <option>--Select--</option> 
       <option value="1">List 1</option> 
       <option value="2">List 2</option> 
       <option value="3">List 3</option> 
       <option value="4">List 4</option> 
       </select> 
      </div> 
      <div class="col-sm-4"><label>Service </label> 
       <select class="form-control selectpicker" data-live-search="true" name="service[]" id="service" multiple="multiple"> 
        <option>--Select--</option> 
        <option value="1">List 1</option> 
        <option value="2">List 2</option> 
        <option value="3">List 3</option> 
        <option value="4">List 4</option> 
       </select> 
      </div> 
      <div class="col-sm-4"><label>Name </label> 
       <input type="text" class="form-control" name="name[]" placeholder="Name" /> 
      </div> 
     </div> 
    </div> 
    <a href="#" class="pull-right" id="add"><i class="fa fa-plus"></i>&nbsp;add</a> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#add').click(function(e) { 
      e.preventDefault(); 
      var i=$('.mrbtm').length+1; 
      $('#lobrows').append('<div class="mrbtm"><div class="form-group"><div class="col-sm-4"><label>Reson </label><select class="form-control selectpicker" data-live-search="true" name="reson[]"><option>--Select--</option><option value="1">List 1</option> 
       <option value="2">List 2</option> 
       <option value="3">List 3</option> 
       <option value="4">List 4</option></select></div><div class="col-sm-4"><label>Service </label><select class="form-control selectpicker" data-live-search="true" name="service[]" id="service'+i+'" multiple="multiple"><option>--Select--</option><option value="1">List 1</option><option value="2">List 2</option><option value="3">List 3</option><option value="4">List 4</option></select></div><div class="col-sm-4"><label>Name </label><input type="text" class="form-control" name="name[]" placeholder="Name" required="required" /></div></div><a href="#" class="pull-right remove"><i class="fa fa-minus"></i> Remove</a><br /></div>'); 
      $('.selectpicker').selectpicker(); 
      $('.selectpicker').selectpicker('refresh'); 
     }); 
     $(document).on('click', '.remove', function(e) { 
      e.preventDefault(); 
      $(this).parent('div').remove(); 
      i--; 
     }); 
    }); 
</script> 

Вот мой код PHP:

<?php 
foreach ($reson as $id => $value) { 
    $reson = ($reson[$id]); 
    $namep = ($name[$id]); 


    foreach ($service as $ii => $valu) { 
     $r_service = ($service[$ii]); 
     echo "Option".$reson."----"."Option".$r_service ."<br>"; 
    } 
} 
?> 

ответ

1

первую очередь: Это не разумно перераспределить вар, которые вы принимаете в качестве источника для Еогеасп

$reson = ($reson[$id]); 

Во-вторых, я не могу видеть свою форму в любом месте в размещенном коде. Я бы предложил, вы печатаете все, что есть в $ _REQUEST [] (POST/GET по типу вашей формы), и посмотрите, что вы получите. Я боюсь, вы увидите все использованные значения из нескольких входных данных выбора. То есть, потому что вы имя все выборы (сгенерирован с js) то же имя. Вы должны идентифицировать выбор однозначно, чтобы вы могли знать, какие именно.

Теперь у вас будет более одного ввода ввода с тем же именем. Вы можете применить что-то вроде атрибута id при генерации новых входов.

В PHP то, что вы можете сделать что-то вроде этого:

$i = 1; 
while(true){ 
    if(!isset($_POST['reson'.$i])){ 
     break; 
    } 
    $selectedOptions = $_POST['reson'.$i]; 
    //your magic 

    $i++; 
} 

Обратите внимание, что этот код не будет работать, если вы будете иметь промежутки между «ид» имен входных выбора. (кто-то удаляет вход для выбора)

Надеюсь, это поможет немного :)

Смежные вопросы