Bonjour,

Je recherche à récupérer les données de plusieurs listes déroulantes, ce que je suis parvenu à faire avec jQuery.

J'ai pensé récupérer les valeurs ds un tableau (bonne idée ?)

Le soucis est que j'aimerai récupérer ces valeurs dans une boucle à chaque fois que l'on change les données des listes déroulantes et que l'on clique sur OK.

N'ayant pas bcp d'affinités avec le Javascript, j'ai fais plusieurs tentatives dont celle-ci.
Le soucis est que ma boucle ne m'affiche que la dernière valeur du tableau et non toutes les valeurs

HTML :

<form method="post" action="">
<select name="genre" class="genre">
<option>Genre01</option>
<option>Genre02</option>
<option>Genre03</option>
</select>
<select name="espece" class="espece">
<option>Espèce01</option>
<option>Espèce02</option>
<option>Espèce03</option>
</select>
<select name="annee_elevage" class="annee_elevage">
<option>Année01</option>
<option>Année02</option>
<option>Année03</option>
</select>
<select name="niveau_elevage" class="niveau_elevage">
<option>Niveau01</option>
<option>Niveau02</option>
<option>Niveau03</option>
</select>
<input type="button" name="elevage_submit" class="elevage_submit" value="Ok"/>
</form>
<span class="essai"></span>

jQuery :

<script>
$(function(){
    $('.elevage_submit').click(function(){
    var genre = $('.genre option:selected').text();
    var espece = $('.espece option:selected').text();
    var annee = $('.annee_elevage').val();
    var niveau = $('.niveau_elevage').val();
var x = [];
x.push(niveau);
for(var i= 0; i < x.length; i++)
{
     $(".essai").before("<br/>").text(x[i]);
};
    });
});
</script>
  • Je récupère les valeurs des listes ds des variables
  • Je créé un tableau vide
  • J'ajoute la valeur de la liste dans le tableau (ac "push"). J'ai juste pris la variable niveau pour l'exemple
  • J'affiche le résultat dans ma div

Quelqu'un peut me dire où se situe l'erreur ?
Je suis également ouvert pour des conseils sur la procédure à suivre
Merci =)

6 réponses


betaWeb
Réponse acceptée

D'accord, tu peux essayer quelque chose comme cela alors: http://codepen.io/betaweb/pen/pJVOGO
Ce n'est qu'un exemple simple, mais tu peux l'adapter à ton cas.

Hello, je n'ai pas essayé mais si tu tentes un :

$(".essai").before('<br/>').append(x[i]);

Edit: En faite j'ai essayé, et j'ai pas du tout compris ton problème x)

Salut,

Je n'ai pas bien compris que que tu essayes de faire ?
Tu veux que lorsq'un élément d'une liste est séléctionné, il s'ajoute à un tableau, que tu affiches ensuite dessous le formulaire pour résumer en gros ce que la personne a sélectionné c'est ça ?

Oui c'est bien cela.
Un peu une prévisualisation avant de reprendre toutes les données et de les insérer dans une bdd =)

C'est fonctionnel, nickel =)
Un grand merci !

Pas de soucis, content d'avoir pu t'aider ;)