2012-12-19 7 views
1

En essayant de charger le contenu d'un fichier XML en utilisant ajax, il me montre "undefined" onload. Dès que j'actualise la page, le contenu est affiché.Chargement du fichier xml en utilisant ajax montre undefined

Voici mon code

$.ajax({ 
     type: "GET", 
     url: "xml/FIB.xml", 
     dataType: "xml", 
     success: function(xml){ 
      var titletext=$(xml).find('Quiz').children().attr("name"); 
      $(".title_text").append(titletext); 
      $(xml).find('question').each(function(){ 
        nooffib=$(this).find("ques").length; 

         for(var a=0;a<nooffib;a++){ 
         n=$(this).find('ques').eq(a).text(); 
         questionarray[a]=n.replace("[blank]","<input id='"+a+"'type='text' class='blanktextbox' onkeyup='btnvisible()'/>"); 

        } 
      }) 
     } 
    });  
+1

Pouvez-vous s'il vous plaît fournir un examen code que vous travaillez avec? – PhearOfRayne

+0

Pourquoi ne modifiez-vous pas simplement votre réponse avec le code? – vusan

Répondre

1

Peut-être qu'undefined signifie que l'élément dom que vous référencez n'a pas encore été créé lorsque vous effectuez votre appel ajax, après que vous ayez actualisé, l'élément "#your_selector" aura été créé. Essayez d'exécuter lorsque le document est prêt ou après un certain événement, par ex. le clic d'un bouton, autrement dit vérifier si #your_selector a été créé avant de faire l'appel ajax:

$("#your_selector").on("click", function(event){ 
//execute your ajax call 
}); 

ou

$("#your_selector").live("click", function(){ 
    //execute your ajax call 
}); 

ou

$(document).ready(function() { 
     //execute your ajax call 
}); 

Un exemple complet serait :

function test(){ 
    $.ajax({ 
    type: "GET", 
    url: "xml/FIB.xml", 
    dataType: "xml", 
    success: function(xml){ 
     var titletext=$(xml).find('Quiz').children().attr("name"); 
     $(".title_text").append(titletext); 
     $(xml).find('question').each(function(){ 
       nooffib=$(this).find("ques").length; 

        for(var a=0;a<nooffib;a++){ 
        n=$(this).find('ques').eq(a).text(); 
        questionarray[a]=n.replace("[blank]","<input id='"+a+"'type='text' class='blanktextbox' onkeyup='btnvisible()'/>"); 

       } 
     }) 
    } 
}); 
} 

$("#your_selector").live("click", function(){ 
    test(); 
}); 
+0

Merci M. ninja .... –

2

Vous faites correctement. Mais l'URL que vous avez fournie n'est pas correcte. Correction d'un problème en changeant l'URL.

+0

Rohit l'Url fonctionne correctement sur mon serveur. –

+0

Vous ne semblez pas avoir compris la question. L'URL est subjective pour l'utilisateur et non un paramètre global que tout le monde peut percevoir sans voir le code réel et l'emplacement du fichier xml. – iOSAndroidWindowsMobileAppsDev

Questions connexes