login  Naam:   Wachtwoord: 
Registreer je!
 Forum

XMLHttpRequest responseText in variabele

Offline dazz - 08/07/2009 15:10
Avatar van dazzNieuw lid ik ben een manier aan het zoeken om de response die je krijgt na een XMLHttpRequest in een variable te krijgen die ik ofwel rechtstreeks in andere functies kan aanspreken of nog beter kan return'e.
Het probleem is dat de variable die ik in de functie xmlhttp.onreadystatechange opvul enkel blijven bestaan in die functie. Als ik dus wat later die variabel wil return'e is deze gewoon nog leeg, terwijl ze zeker wel is opgevuld in de xmlhttp.onreadystatechange functie.

momenteel heb ik ondestaande code
  1. function getInformation(type){
  2. var test;
  3.  
  4. xmlhttp = $.get("den url", { a: type.val() });
  5.  
  6. xmlhttp.onreadystatechange=function(){
  7. if(xmlhttp.readyState==4){
  8. test = xmlhttp.responseText;
  9. }
  10. }
  11.  
  12. return test;
  13. }


alvast bedankt

4 antwoorden

Gesponsorde links
Offline Koen - 08/07/2009 15:28
Avatar van Koen PHP expert Wat zegt je firefox foutconsole? En met welk framework werk je?
Offline dazz - 08/07/2009 15:58 (laatste wijziging 08/07/2009 15:58)
Avatar van dazz Nieuw lid er zijn geen fouten, het werkt op zich perfect alleen word de waarde niet doorgegeven. Ik gebruik jQuery om de httpRequest te doen.

Maar ik heb zo net nog wel een iets ontdenkt

als ik hetvolgende doe
  1. function getInformation(type){
  2. var test;
  3.  
  4. xmlhttp = $.get("den url", { a: type.val() });
  5.  
  6. xmlhttp.onreadystatechange=function(){
  7. if(xmlhttp.readyState==4){
  8. alert('test')
  9. test = xmlhttp.responseText;
  10. }
  11. }
  12.  
  13. return test;
  14. }
  15.  
  16. getInformation(type);
  17. alert('bla');


dan krijg ik het eerst den 'bla' alert te zien en dan pas de 'test'. terwijl ik dit wel andersom verwacht.
Dus misschien kan ik de waarde wel in een globale variabele zette maar wordt deze eerst weergegeven en dan eigenlijk pas opgevult?
Offline Koen - 08/07/2009 16:59
Avatar van Koen PHP expert
  1. var test;
  2. $.get("den url", { a: type.val() }, function(data)
  3. {
  4. alert(data);
  5. test = data;
  6. });

Probeer die eens, 'Get' returnt geen xmlhttp object 
Offline dazz - 09/07/2009 09:41
Avatar van dazz Nieuw lid $.get returnt wel een xmlhttp opbject.
Het probleem is dat de rest van de code wordt uitgevoerd terwijl de xmlhttp request wordt gedaan. Asynchronous dus
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s