Ajax variable weiterverwenden

Chris_85

Grünschnabel
Hallo,
ich habe mich jetzt ein wenig mit Ajax auseinander gesetzt. Nur leider probiere ich jetzt schon ewig daran rum den Wert den meine Ajax Abfrage ausgibt weiterzuverwenden.

Ich habe voon einen bekannten diese SCripte bekommen (im Anhand)

Wenn ich jetzt:

Code:
	<script src="js/jquery.js" language="JavaScript" type="text/javascript"></script>
  <script language="JavaScript" type="text/javascript">
    JQ = $;  //rename $ function
  </script>
  <script language="JavaScript" type="text/javascript" src="js/prototype.js"></script>
  <script language="JavaScript" type="text/javascript" src="js/scriptaculous/scriptaculous.js"></script>
	<script language="JavaScript" type="text/javascript">
	//<![CDATA[
	
	function checkPhpVar()
	{
	  JQ.get('http://monoton-und-minimal.net/tests/ajax/check_php_var/jedes_beliebige_skript.php', { IRGENDEIN_URL_PARAMETER: 'wert' }, 
	    function(data) 
	    { 
	      if(data == '18')
	      {
	        alert('Es ist schon nach 18 Uhr.');
	      }
	      else
	      {
	        alert('Es ist noch nicht 18 Uhr, sondern ' + data + ' Uhr.');
	      }
	    } 
	  ); 
	}
	
	setInterval("checkPhpVar()",10000);
	
	//]]>
	</script>

ausführe klappt das prima... aber sobald ich die variable "data" (natütlich ohne komplett zu reloaden) weiterverwenden möchte ausgehalb des querys ist die Variable nicht mehr definiert.. Aber ich brauche die variabel...Da muss es doch einen einfachen weg geben

Da muss es doch eine Möglichkeit geben.

Im vorraus Danke
 

Anhänge

  • check-php-var.zip
    131,6 KB · Aufrufe: 10
Deklariere ausserhalb der Funktion eine globale Variable.
Innerhalb der Funktion weise dieser globalen Variable den Wert von data zu...dann kannst du überall damit arbeiten.
 
Hm danke erstmal so ganz will das ja nicht klappen das hatte ich ja auch schon versucht:

Code:
var test;
	function checkPhpVar()
{

	JQ.get('engine.phpx', { IRGENDEIN_URL_PARAMETER: 'wert' }, 
	function(data) {
	test=data;}
	); 
	
	alert(test);
}
setInterval("checkPhpVar()",10000);

Gibt zwar nach 10 Sekunden ein alert fenster aus aber mit "undefined", seltsamer weise gibt es aber nach 20 sekunden den richtigen wert aus. Warum muss die Schleife zweimal durchlaufen werden?
 
Beim ersten mal startest du den Request, versuchst aber sofort, die Variable auszugeben.
Da es einen Moment dauert, bis der Request abgewickelt ist, ist die Variable noch nicht gesetzt.
 
Hallo,

ich hab' mir die angehängte Datei nicht angeschaut, aber der 3 Paramter der Funktion get scheint eine Funktion zu sein, die bei dem Ereignis "onreadystatechange" aufgerufen werden soll. Erstell' eine solche Funktion und überprüfe dort den Status der Verbindung (soll heißen, ob der Server schon geantwortet hat) mit folgendem Code:

if(http.readyState == 4 && http.status==200) { CODE }
 
Zurück