2016-04-20 5 views
6

Это мой взгляд код файлаКак получить Избранное MULTISELECT выбранных значений под For Loop

<?php for($i=0; $i<4; $i++) { ?> 
<div class="box22"> 
     <div class="mcm"> 
      <input type="text" placeholder="Myself" id="coworkers" name="coworkers[]" /> 
      <span class="bar"></span> 
     </div> 

     <div class="select2"> 
     <select id="category_<?php echo $i; ?>" name="category[]" class="chosen-select ref-sel1" multiple > 
      <?php 
      foreach($genre as $gen){ 
       echo '<option value='.$gen->genre_id.'>'.$gen->genre_name.'</option>'; 
      } 
      ?> 
     </select> 
     </div> 
</div> 
<?php } ?> 

моего сценарий: когда я выбрал один или более из варианта, он не входит в сценарий. Как получить несколько значений под петли

$(document).ready(function() 
    { 
     $('form#shortfilm').submit(function(e) 
     { 
      e.preventDefault(); 
      var form = $(this); 
      var foo = []; 
      $('#category :selected').each(function(i, selected){ 
       foo[i] = $(selected).text(); 
      }); 
     }); 
    }); 
+0

Возможный дубликат [Как получить несколько значений из выпадающего списка, с помощью JQuery?] (Http://stackoverflow.com/questions/3243476/how-to-get-multiple-select-box- values-using-jquery) – WebInsight

+0

Я пробовал это только, но не ответил – shruthi

+0

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

ответ

2

текст изменений к валу()

$('option:selected').each(function(i, selected){ 
       foo.push($(selected).val()); 
      }); 

или:

var foo = []; 
$('.box22').each(function(x,v){ 
var temp =[] 
    $(v).find('option:selected').each(function(i, selected){ 
     temp.push($(selected).val()); 
    }); 
    foo.push(temp) 
}); 

see demo for the second option here

+0

ничего не работает, что вы имеете в виду? – madalinivascu

+0

Теперь я проверяю, что ... это выбранное значение отображается по одной первой опции. Но не работает push-элемент – shruthi

+0

Что вы подразумеваете под одним первым вариантом? – madalinivascu

1

Использование функции .val() на multi-select list возвращает массив выбранных значений:

var selectedValues = $('#category').val();

И в вашем HTML <select id="category" multiple="multiple">

поставил также значения за $ генера-> genre_id в переменной и так как этот

foreach($genre as $gen){ 
$genId = $gen->genre_id; 
$genName = $gen->genre_name; 
      echo '<option value='.$genId.'>'.$genName.'</option>'; 
     } 

Также <select id="category" в forloop будет иметь много выберите элементы с тем же идентификатором, измените это на категорию [$ i] или используйте класс

+0

@jana добавьте это в код и скажите мне, работает ли он в порядке или нет – WebInsight

+0

он показывает нуль в оповещении – shruthi

+0

Теперь сделайте это и проверьте – WebInsight

2

Пожалуйста, запустите этот пример кода. Это может помочь вам

<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
</head> 
<body> 
<form id="shortfilm" name="data"> 
<?php $genre=array(1=>'AAAAAAAAAAAAAA',2=>'BBBBBBBBBBBBBBB',3=>'CCCCCCCCC',4=>'DDDDDDDDDDDDDD',5=>'EEEEEEEEEEEEEEE'); 
for($i=0; $i<4; $i++) { ?> 
<div class="box22"> 
     <div class="mcm"> 
      <input type="text" placeholder="Myself" id="coworkers" name="coworkers<?php echo$i?>[]" /> 
      <span class="bar"></span> 
     </div> 

     <div class="select2"> 
     <select class="category" name="category<?php echo$i?>[]" class="chosen-select ref-sel1" multiple > 
      <?php 
      foreach($genre as $key => $gen){ 
       echo '<option value='.$key.'>'.$gen.'</option>'; 
      } 
      ?> 
     </select> 
     </div> 
</div> 
<?php } ?> 
<input type="submit" value="submit" /> 
</form> 
<script> 
$(document).ready(function() 
{ 
    $('form#shortfilm').submit(function(e) 
    { 
     e.preventDefault(); 
     var form = $(this); 
     var foo = []; 
     $('.category :selected').each(function(i, selected){ 
      foo[i] = $(selected).text(); 
     }); 
     console.log(foo); 
    }); 
}); 
</script> 
</body> 
</html>