Select multiple (jquery) dnas script php

Avatar du membre
Eléphant du PHP | 224 Messages

26 avr. 2017, 20:40

Hello :)

J'ai une liste déroulante à choix multiple (jquery) à mettre dnas une bouche while d'une page php.

Voici mon code

Code : Tout sélectionner

<script type="text/javascript"> $(document).ready(function() { $('#multiple-selected').multiselect(); }); </script> <select style="width:168;" name="VAL_CATEGP<? echo $lines; ?>" id="multiple-selected" multiple="multiple"> <? while( $result = mysql_fetch_object( $requete ) ) { ?> <option value="<? echo $result->CATEGP; ?>" <? if ($result->CATEGP == $VAL_CATEGP) { echo 'selected="selected"'; } ?>><? echo "$result->LIB_FR"; ?></option> <? } ?></select>
Mais cela ne marche que pour la première ligne donnée par la boucle while.

alors je me suis dis que c'était parce que l'id du select était toujours le même, donc j'ai ajouté la variable $line (qui s'incrémente à chaque ligne) tel que :

Code : Tout sélectionner

<script type="text/javascript"> var lines="<?php echo $lines;?>"; $(document).ready(function() { $('#multiple-selected' + lines).multiselect(); }); </script> <select style="width:168;" name="VAL_CATEGP<? echo $lines; ?>" id="multiple-selected<? echo $lines; ?>" multiple="multiple"> <? while( $result = mysql_fetch_object( $requete ) ) { ?> <option value="<? echo $result->CATEGP; ?>" <? if ($result->CATEGP == $VAL_CATEGP) { echo 'selected="selected"'; } ?>><? echo "$result->LIB_FR"; ?></option> <? } ?></select>
Mais cela ne marche cette fois que pour la dernière ligne.

Je n'y connais totalement rien du tout en javascript, j'ai trouvé ce script de select multiple sur la toile (j'aurais préféré sans javascript) et tenté de l'adapté, mais je ne m'en sors pas :(

Si quelqu'un a une astuce, je serais preneur avec plaisir :)

Merci et à bientôt !
Couin
Un Couin vaut mieux que Deux tu couineras :D
Retrouvez-moi tous les dimanches soir à 22H pour un mix live au vinyle sur eurodance90.fr :mrgreen:

ViPHP
ViPHP | 1996 Messages

26 avr. 2017, 21:56

Un Id soit être unique dans ton HTML. Si tu veux appliquer la fonction multiselect sur plusieurs select, soit tu utilises une classe, soit tu indiques tous les select :

//que sur le select qui a l'id multiple-select
$('select#multiple-selected').multiselect();

//sur tous les éléments qui possède la classe multiple-select
$('.multiple-selected').multiselect();

//sur tous les selects
$('select').multiselect();

//sur le deuxième select trouvé dans le DOM
$('select:nth-of-type(2)').multiselect();

Dans les différentes pages que j'ai pu lire, il faudrait que le select possède un attribut name sous forme de tableau.Essayes donc cela (j'ai corrigé tes balises php et css et indenté ton code pour que cela soit plus lisible).

<select style="width:168px;" name="VAL_CATEGP[]" id="multiple-selected" multiple="multiple">
<?php
while( $result = mysql_fetch_object( $requete ) )  {
	?>
	<option value="<?php echo $result->CATEGP; ?>" <?php if ($result->CATEGP == $VAL_CATEGP) echo 'selected="selected"'; ?>>
		<?php echo "$result->LIB_FR"; ?>
	</option>
	<?php 
	} 
?>
</select>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Avatar du membre
Eléphant du PHP | 224 Messages

28 avr. 2017, 20:25

Hello,

Merci pour ta réponse rapide mais je peine énormément (pour pas dire complètement) à savoir que faire des codes que tu m'as écrit.
Plus je fais de modifs, moins ça marche :(
Je ne sias pas ce qu'est le DOM, mais pour le select, je l’ai autant de fois qu'il y a de lignes dans le fichier csv que j'épluche.

De plus, je viens de voir que la récupération des données du form , ne prend que la dernière case coché dans le (seul) multiselect qui fonctionne (donc celui de la dernière ligne).

Je suis pas sorti de la basse cours loool

Merci :)
Couin
Un Couin vaut mieux que Deux tu couineras :D
Retrouvez-moi tous les dimanches soir à 22H pour un mix live au vinyle sur eurodance90.fr :mrgreen: