2010-01-10 5 views
0

Je suis très nouveau dans JQuery et j'essaie de remplir mes boîtes de sélection html avec Jquery mais elles restent vides. Ci-dessous mon code:Fonction de rappel JQuery ajax

$('select').each(function(){ 
     var action = 'SELECT_FLDS_GRID'; 
     var fldnam = $(this).attr('name'); 
     $.getJSON('frm.grid.php',{'action':action,'fldnam':fldnam},function(j){ 
     var_SelectOption(j,fldnam); 
     }); 
    }); 
    function var_SelectOption(j,myfld) 
    { 
     var options = ''; 
     for(var i=0;i<j.length;i++) 
     { 
     options += '<option value="' + j[i].option + '">' + j[i].option + '</option>'; 
     } 
     $('select').each(function(){ 
     if($(this).attr('name') == myfld) {$(this).html(options);} 
     }); 
    } 

Pour plus de précisions, si je change var_SelectOption avec ci-dessous le code j'obtenir un résultat:

function var_SelectOption(j,myfld) 
    { 
     var options = ''; 
     for(var i=0;i<j.length;i++) 
     { 
     options += '<option value="' + j[i].option + '">' + j[i].option + '</option>'; 
     } 
     $('select').html(options); 
    } 

Quoi qu'il en est évidemment pas l'intention que cela met la même chose optionList à chaque boîte de sélection. Donc, c'est juste pour montrer où est le problème; les chaînes de liste d'options doivent être attachées à l'élément select approprié. Je joue avec ça depuis un certain temps mais je n'arrive pas à trouver le problème. Je me demande même si je le fais complètement faux ... Espérons que quelqu'un puisse m'aider ici.

Cordialement, Patrick

Répondre

2

Essayez $('select[name="'+myfld+'"]').html(options);

+0

Hey merci pour la réponse rapide et oui qui fonctionne! J'ai essayé ceci avant (et aussi de plusieurs autres manières) mais toujours avec @name et sans guillemets, parce que c'est ainsi que je l'ai lu dans les docs en ligne (http://docs.jquery.com/DOM/Traversing/Selectors): $ ("entrée [@ nom = barre]"). val(); Je ne sais pas quelle est la différence, mais cela fonctionne parfaitement lorsque vous avez répondu. Merci beaucoup. Patrick – Patrick