2017-01-23 23 views
3

2つの選択ボックス1つの選択ボックスは複数の選択オプションです。同じ選択ボックスで複数の行を追加するボタンがあり、値は配列フォーマットで渡されます。 。複数選択オプション

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

Iが第1の選択ボックスの最初のオプションを選択し、第二(オプション1およびオプション2)選択ボックス複数のオプションを選択し、2行目のiは、第1の選択ボックスに2番目のオプションを選択し、第2選択ボックス複数の選択肢(オプション3とオプション4を選択)。

<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> 
: 私はここで
Option1    Option1 
Option1    Option2 
Option1    Option3 
Option1    Option4 

Option2    Option1 
Option2    Option2 
Option2    Option3 
Option2    Option4 

は私のコードで私は

Option1    Option1 
Option1    Option2 

Option2    Option3 
Option2    Option4 

を印刷したい送信ボタンをクリックしたが、今、それは印刷(複数選択ボックスからすべてのデータを取ります)

私の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]); 

第二にforeachのためのソースとして取っているVARを再割り当てするのが賢明ではありません。私は$ _REQUEST [](POST/GETフォーム)の中にあるものは何でも印刷し、何を得るのかを見てみることをお勧めします。 私は賛成です、複数の選択入力から使用されたすべての値が表示されます。 つまり、という名前のはすべて(jsで生成された)同じ名前です。 選択肢を一意に識別する必要があります。

これで、複数の選択入力に同じ名前を付けることになりました。 新しい入力を生成するときに、id属性と同じように適用できます。あなたが選択入力名の「IDS」間のギャップを持つことになりますと、このコードは動作しないこと

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

    $i++; 
} 

注:

は、PHPで、あなたはこのような何かを行うことができます。 (誰かが選択入力を削除します)

希望は少し助けてください:)

関連する問題