Soucis jQuery Ajax Jsp

Soucis jQuery Ajax Jsp - HTML/CSS - Programmation

Marsh Posté le 24-04-2009 à 08:51:25    

Bonjour tout le monde.
J'ai un petit soucis : Je lance des servlets java à partir du code javascript ci-dessous. La servlet fonctionne et renvoie le bon résultat mais ne s'affiche pas. Voilà le code en question :  
 
jQuery(document).ready(function(){
        refresh(document.getElementById('elementPere1').value, 'elementFils1', elementFilsSelected', 'nameServlet');
 });
 
function refresh(dadId, sonName, selectedName, servletName){
   jQuery.ajax({
              type: "GET", url: "/chemin/" + servletName + ".view", data: "dadId=" + dadId, dataType: "xml",
              success: function(result){
                 var selectedValue = document.getElementById(selectedName+'').value
                  jQuery('#' + sonName).empty()
                  jQuery(result).find('item').each(function(){
                    var id_text = jQuery(this).find('value').text();
                       var name_text = jQuery(this).find('name').text();
                       if (selectedValue == id_text){
                        jQuery('<option selected=\"selected\" value=\'' + id_text + '\'>' + name_text +'</option>').appendTo('#' + sonName);
                       }else{
                        jQuery('<option value=\'' + id_text + '\'>' + name_text +'</option>').appendTo('#' + sonName);
                       }
                   });
     }
   });
}
 
A bientôt.

Reply

Marsh Posté le 24-04-2009 à 08:51:25   

Reply

Marsh Posté le 24-04-2009 à 09:56:19    

salut
 
1) les balises [ code] ca aide ;)

Code :
  1. jQuery(document).ready(function(){
  2.        refresh(document.getElementById('elementPere1').value, 'elementFils1', elementFilsSelected', 'nameServlet');
  3. });
  4.  
  5. function refresh(dadId, sonName, selectedName, servletName){
  6.   jQuery.ajax({
  7.              type: "GET", url: "/chemin/" + servletName + ".view", data: "dadId=" + dadId, dataType: "xml",
  8.              success: function(result){
  9.                 var selectedValue = document.getElementById(selectedName+'').value
  10.                  jQuery('#' + sonName).empty()
  11.                  jQuery(result).find('item').each(function(){
  12.                    var id_text = jQuery(this).find('value').text();
  13.                       var name_text = jQuery(this).find('name').text();
  14.                       if (selectedValue == id_text){
  15.                        jQuery('<option selected=\"selected\" value=\'' + id_text + '\'>' + name_text +'</option>').appendTo('#' + sonName);
  16.                       }else{
  17.                        jQuery('<option value=\'' + id_text + '\'>' + name_text +'</option>').appendTo('#' + sonName);
  18.                       }
  19.                   });
  20.     }
  21.   });
  22. }


 
2) le callback success s'execute't-il ? quel version de jQuery utilises-tu ? As-tu regardé (avec Firebug par exemple) si une erreur JS survenait ?
 
[:_edit]
il semblerait que " elementFilsSelected' " provoque une erreur, c'est une erreur de copier-coller ? [:petrus dei]


Message édité par SICKofitALL le 24-04-2009 à 09:57:31

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 24-04-2009 à 10:10:08    

Salut,
Oui la fonction du success s'éxecute bien.
J'utilise jQuery 1.2.6
 
Grâce à Firebug et des alert() un peu partout, il semble que le soucis apparaisse à partir de :

Code :
  1. var id_text = jQuery(this).find('value').text();


Quand je fais un alert(jQuery(this).find('value').text()); ça ne s'affiche pas.
 
Pour elementFilsSelected, c'est en effet une erreur de ma part.

Reply

Marsh Posté le 24-04-2009 à 11:06:04    

Tu peux mettre des console.log c'est quand même plus sympa que des alert
http://getfirebug.com/console.html

Reply

Marsh Posté le 24-04-2009 à 13:12:36    

sur cette ligne là, fais une console.dir (this) pour voir avec Firebug ce qui est retourné, car si je comprends bien ce que tu veux faire, tu veux afficher la valeur de l'attribut "value", si c'est le cas ca ne se fait pas avec la methode find () mais avec attr () (du moins sous la version 1.3+ de jQuery que au passage je te conseille).


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 24-04-2009 à 13:39:06    

J'ai trouvé le pb c'était un conflit avec une autre méthode.
Merci pour vos conseils.
Amadeh.

Reply

Sujets relatifs:

Leave a Replay

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