Double la select list à chaque change avec JQuery

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Double la select list à chaque change avec JQuery

Re: Double la select list à chaque change avec JQuery

par hi-logik » 21 janv. 2010, 12:59

Yes :D

En effet bonne réponse ! ne maitrisant pas bien le dom et JQuery je ne savais pas qu'il fallait d'abord vider la select liste.

Pour ceux qui rencontrerais ce souci voici la solution avec JQuery:

Code : Tout sélectionner

$("#country").change(function() { var val = $('#country').attr('value'); $("#city").empty(); // J'AI JUSTE AJOUTER CETTE LIGNE POUR VIDER AVANT LE RECHARGEMENT if(val) { $(getCities("/xml/cities.php?id=" + val)); } });

Merci Bonne fin de journée ;)

Re: Double la select list à chaque change avec JQuery

par Genova » 21 janv. 2010, 11:17

Je ne connais pas les méthodes Jquery, mais de ce que je vois tu oublies de vider ta liste avant de la remplir à nouveau, donc forcément ça se cumule ;)

Double la select list à chaque change avec JQuery

par hi-logik » 21 janv. 2010, 02:23

Bonjour,

J'ai 2 select listes déroulant.
pour la première tous vas bien mais la 2eme c'est pas encore ça !

quand je clique sur la première pour listé la 2eme un coup ça marche puis quand je rechange ca fonctionne aussi
mais ca ajoute à la première selection et sa additionne à chaque fois que le change...

Moi et mes select list à force d'en mangé je vais devenir imbattable et fou aussi lol
j'ai fais le test du coté php avec l'id en paramètre dans l'url et à chaque changement il ne double pas.

voici le code :

Code : Tout sélectionner

$(document).ready(function() { (function($) { getCountries = function(ajaxUrl) { $.ajax ({ type: "GET", url: ajaxUrl, dataType: "xml", success: function(xml) { $(xml).find('element').each ( function() { var option = $(this).find('option'); var value = $(this).find('value'); var select = $(option).attr("selected"); if(select == 'selected' && select != 'undifined') { var selected = 'selected="selected"'; } $("#country").append("<option value='"+ value.text() +"'"+ selected +">"+ option.text() +"</option>"); } ); } }); }; })(jQuery); (function($) { getCities = function(ajaxUrl) { $.ajax ({ type: "GET", url: ajaxUrl, dataType: "xml", success: function(xml) { $(xml).find('element').each ( function() { var opt = $(this).find('option'); var valu = $(this).find('value'); var select = $(opt).attr("selected"); if(select == 'selected' && select != 'undifined') { var selected = 'selected="selected"'; } $("#city").append("<option value='"+ valu.text() +"'>"+ opt.text() +"</option>"); } ); } }); }; })(jQuery); $(getCountries("/xml/countries.php")); $("#country").change(function() { var val = $('#country').attr('value'); if(val) { $(getCities("/xml/cities.php?id=" + val)); } }); });
Bon pour le selected du 2eme je verrais ça après je penses enfin avoir compris comment faire puisque que ca marche
avec la session pour la première select liste

Merci bien.