J'ai un formulaire avec 2 cases de sélection pour les listes dépendantes.Récupère la valeur de l'option Désélectionnée Multiselect
Je charge une deuxième liste basée sur la valeur sélectionnée dans la première liste, qui est multi-sélection.
<select id="list1" multiple='multiple'>
<option value="a">a value</option>
<option value="b">b value</option>
<option value="c">c value</option>
</select>
<select id="list2">
</select>
Pour chaque option ajoutée à List2, je suis également d'ajouter une classe avec une valeur de list1 correspondant à la valeur de liste2.
Pour le chargement des éléments pour l'option sélectionnée, j'utilise le code:
$('#list1').on('change', function(){
var list1vals = $('#list1').val().split(',');
var newval = '';
for(x in list1vals)
{
// Checking for selected value of list1 which doesn't have
// corresponding values in list2.
if($('.'+list1vals[x]).length == 0)
{
newval = list1vals[x];
}
}
$.ajax({
type : "GET",
url : "/xyz.php?action=getlist2&list1="+newval,
success : function(response)
{
if($.trim(response) != '')
{
$('#list2').append(response);
}
}
});
});
xyz.php
$action=$_GET['action'];
$listval1=$_GET['list1'];
switch($action)
{
/////////////////
case 'getlist2':
$list2 = fetchlist2($list1val);
foreach($list2 as $listobj)
{
$optionlist = '<option class="'.$list1val.'" value="'.$listobj['id'].'">'.$listobj['value'].'</option>';
}
echo $optionlist;
break;
////////////////
}
Est-il possible où je peux retirer l'élément désélectionné dans list1 de list2?
Si une option n'est pas sélectionnée, je souhaite supprimer tous les éléments de la liste2 ayant la valeur de classe de l'élément non sélectionné.
Remarque: L'opération d'extraction de la liste dans fetchlist2
est coûteuse et par conséquent je veux gérer la suppression de l'élément dans javascript.
Désolé de répondre après si longtemps, mais le contenu des listes étaient séparés et donc la première solution n'a pas fonctionné. L'autre solution ne correspondait pas aussi bien. J'ai probablement décrit ma question trop vaguement. Posté ce que j'ai finalement fait. –