2016-08-04 4 views
0

Alright У меня есть MULTISELECT вроде этого:проверка JQuery конкретных вариантов в множественном

<select id="filtreMultiselectModif" name="groupes[]" multiple="multiple"> 

<script> 
$('#filtreMultiselectModif').multiselect(
    { 
     includeSelectAllOption: true, 
     enableFiltering: true, 
     maxHeight: 200 
    }); 
</script> 

, которые дают мне, что:

enter image description here

То, что я хотел бы сделать, это установить проверили некоторые которые я храню в таблице PHP.

Вот мой JQuery код (который не работает)

<script> 
$(document).ready(function() 
{ 
    var arrayFromPHP = <?php echo json_encode($tableauIntitule); ?>; 
    $('#filtreMultiselectModif').multiselect(
    { 
     includeSelectAllOption: true, 
     enableFiltering: true, 
     maxHeight: 200 
    }); 

    $('#filtreMultiselectModif option').each(function(i,option) 
      {  
       $.each(arrayFromPHP,function(index,groupe){ 
        if ($(option).text() === groupe) 
      { 
       alert (option.text); 
       $(this).attr('checked', 'checked'); 
      } 
       }); 
      }); 
}); 

Основном Я хочу, чтобы каждый элемент, сохраненный в arrayFromPHP, чтобы проверить в списке, но это не похоже на работу ..

Вот код для моего PHP массива только в случае, если:

<?php 
$tableauIntitule = []; 
$i = 0; 
while ($data3 = mysqli_fetch_array($req3)) { // Remplissage du SELECT 
    $intitule = $data3['intitule']; 
    $tableauIntitule[$i] = $intitule; 
} 
?> 

ответ

2

Прежде всего - у наш вопрос касается bootstrap-multiselect (а не jquery-multiselect).

Вы можете использовать multiselect('select', VALUES), чтобы установить выбранные значения.

Вот пример:

$(document).ready(function() { 
 
    $('#s1').multiselect(); 
 
    $('#s1').multiselect('select', ['a', 'c', '2']); 
 
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
 
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css"> 
 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.min.js"></script> 
 
<select id="s1" multiple="multiple"> 
 
    <option value="a">Option A</option> 
 
    <option value="b">Option B</option> 
 
    <option value="c">Option C</option> 
 
    <option value="1">Option 1</option> 
 
    <option value="2">Option 2</option> 
 
    <option value="3">Option 3</option> 
 
</select>

В вашем случае, если arrayFromPHP является массивом (т.е. arrayFromPHP = ['v1', 'v2', 'v3']), вы можете сделать multiselect('select', arrayFromPHP).

Важно помнить, что в массиве должны быть значения, а не данные опций (<option value="VAL">OPTION</option>).

+0

Действительно, сработало! Большое спасибо за помощь, которую вы любите! Застрял часами в этом ха-ха – DeveloppeurDuTurfu

+1

Вы более чем рады. В следующий раз - установите правильные теги и дайте пример, чтобы было легче помочь :) Потребовалось некоторое время, чтобы понять, что вы ** dont ** используете 'jquery-multiselect' – Dekel

+0

ладно спасибо за совет :) действительно ценю ваш помочь человеку – DeveloppeurDuTurfu