2016-11-11 4 views
-3

Ich benutze Ajax, um ein PHP-Skript innerhalb meiner Site auszuführen. Ich würde gerne eine JS-Variable auf die Antwort aus dem PHP-Skript setzen.JavaScript responseText wird nicht als Variable gespeichert?

Dieses Skript sollte die Variable "STOPAT" auf 42.

Hier ist mein Fehler machen: Error

Hier ist mein Code:

  function reqListener() { 
      console.log(this.responseText); 
      } 

      var oReq = new XMLHttpRequest(); //New request object 
      oReq.onload = function() { 
       var stopAt = (this.responseText) 
      }; 
      oReq.open("get", "gennum.php", true);        
      oReq.send(); 
      theWheel.animation.stopAngle = stopAt; 

Hier ist gennum.php:

<?php 
echo json_encode(42); 
?> 

Vielen Dank! Hoffentlich könnt ihr mein Problem lösen! :)

Antwort

0

stopAt ist eine lokale Variable. Es ist nur innerhalb der Funktion definiert. Sie müssen die Anweisung verschieben, die sie in die Funktion verwendet.

oReq.onload = function() { 
    var stopAt = (this.responseText); 
    theWheel.animation.stopAngle = stopAt; 
}; 
+0

Gibt es eine Möglichkeit, das kann ich tun, indem Sie eine globale Variable verwenden ... oder etwas? – Jake

+0

Sie müssen immer noch 'stopAngle' innerhalb der Funktion einstellen. ['XMLHttpRequest.send'] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send) ist asynchron, so dass es so schnell wie möglich zurückkehrt, ohne dass die Anforderung zum Abschluss erwartet wird, und Die Variable wird immer noch nicht unter 'send()' call definiert. –

+0

@jake .......... –

Verwandte Themen