jquery je comprends pas ce qui se passe ;-(

jquery je comprends pas ce qui se passe ;-( - HTML/CSS - Programmation

Marsh Posté le 06-05-2013 à 20:18:04    

Bonjour
 
J'ai un souci dans un script en jquery.  
 
J'ai une fonction qui permet de mettre à jour un <select> en fonction d'un input. Cette fonction marche impec !

Code :
  1. $('#id_produit_groupe').change( function(){
  2.  // affichage des produits en fonction du groupe de produit
  3.  $.ajax({
  4.  type : 'GET',
  5.  url : 'controller/mes_produits/getListeProduit.php' , // url du fichier de traitement
  6.  data : {id_produit_groupe:$(this).val()} , // données à envoyer en  GET  
  7.  beforeSend : function() {$('#waiting_pseudo_produit').show(); }, // faire apparaitre l'image d'attente
  8.  success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
  9.         $('#id_produit').html(data); // affichage des résultats dans le bloc
  10.         $('#waiting_pseudo_produit').hide();
  11.        }
  12.  });
  13. });


 
J'ai ensuite un peu plus loin dans le script, un trigger qui déclenche cette fonction. Le trigger se déclenche bien et met donc à jour la liste déroulante.
 

Code :
  1. $('#id_produit_groupe').trigger( "change" );


 
Je voudrais maintenant mettre en "selected" une certaine valeur dans cette liste. Je fais comme ça :
 

Code :
  1. $('#id_produit [value="'+data.id_produit+'"]').attr('selected', true); // marche pas !


 
Et ça ne marche pas. La liste se met à jour , mais le "selected" n'est pas pris en compte. Je pense (mais pas sur , d'où ce post) que tout ça est de l'asynchrone, et que mon pb vient de là. Comment puis je dire au script de mettre le "selected" uniquement aprés l'exécution du trigger ? La syntaxe pour mettre le "selected" n'est pas en cause (je l'ai fait en dur pour vérifier et  ça fonctionne).
 
 
Merci pour vos suggestions , car je ne suis pas tres tres fort en jquery.
 
Dominique
 
 

Reply

Marsh Posté le 06-05-2013 à 20:18:04   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed