JavaScript Objekte

Seth93

Well-known member
ID: 322821
L
24 November 2008
1.400
82
Hi,

ich hab mit jQuery einen Ajax-Request gesendet, der folgendermaßen aussieht:
HTML:
var var;

$.ajax({
		url: 'url.php', 
		dataType: 'json',
		success: function(data){
			var = data;
		}
	});

Jedoch bleibt var leer.
Wie übergebe ich data an var?

Ich hab s auch noch anders probiert:
HTML:
	var = $.ajax({
		url: 'game.php?get', 
		dataType: 'json',
		success: function(data){
			return data;
		}
	});

console.log(var); zeigt mir ein Objekt an.
Jedoch komme ich über var.responseText nicht an die Meldung.
Es klappt jedoch über $.each, ich möchte jedoch wissen, wie ich auch ohne each an die Eigenschaften komme.


Lg
 
Also erstmal ist "var" ein reserviertes Schlüsselwort von JavaScript, dein Code muss also schon JavaScript-Fehler bringen, da du keine Variable var nennen darfst. Zweitens greifst du mit jquery dann nicht über responseText auf die Daten zu, der Parameter sind die Daten.
Wenn du deinen ersten Code dahingehend verbesserst (Schlüsselwort) funktioniert der Code.
 
Hab grad die Variablennamen einfach nur ersetzt:
HTML:
	var seq;
	
	$.ajax({
		url: 'url.php', 
		dataType: 'json',
		success: function(data){
			seq = data;
		}
	});
	
	console.log(seq);

So klappt das auch nicht.
seq ist undefined.

Lg
 
Naja, der $.ajax()-Aufruf ist per default asynchron, also wird seq auch im erst im success-Handler gefüllt. Pack das console.log() mal da rein.
 
Ich möchte das ganze eigentlich als Rückgabewert zurückgeben.
Also
HTML:
$.ajax({ 
  url: 'url.php',
  dataType: 'json', 
  success: function(data){ 
     return data; 
  } 
});

klappt nicht.
 
Sprich, das ganze soll innerhalb einer Funktion dazu dienen, den Rückgabewert zu ermitteln? Dann musst Du den Request synchron laufen lassen.

Die bessere Idee wäre es allerdings, die weitere Logik in den Success-Handler zu packen bzw. von dort anzustossen.