2011-01-16 29 views
1
$(document).ready(function() 
{ 

$.ajax({ 
method: "get", 
url: 'ctr_seearmylist.php', 
dataType: 'json', 
data: 'get="squad"', 
success: processSquads() 
}); 

}); 

function processSquads(response) 
{ 
alert(response); 

} 

Warum funktioniert es nicht? Wie kann ich das Json-Ergebnis verwenden, das ich erhalte? Das Json Ergebnis sieht wie folgt aus [[1,2]] [[1,2]]Parsing Json mit Jquery

Dies ist, wie die PHP-Funktion, die aufgerufen wird wie folgt aussieht: {...... $ temp [0 ] = $ id; $ temp [1] = $ squad_id;

$result[]=$temp; 
} 
$result=json_encode($result); 
return $result; 

ich auf die Antwort sah ich in Firebug bekommen und ich erhalten diese: [[ "1", "12"], [ "2", "3"], [ "3",“ 7 "]] aber ich schaffe es nicht, es aufzuschreiben. Ich möchte nur 1, 2, 3 schreiben, aber ich kann es nicht schreiben, wie es ist.

Ich sollte erwähnen, dass ich versuchte, es mit jQuery.parseJSON zu analysieren, aber in der Funktion Prozessgruppe nicht einmal den Parameter senden. Was mache ich falsch?

+0

vielleicht Funktionen sollten erklärt werden, bevor sie verwendet werden? ;) – shybovycha

+0

@shybovycha; es wird deklariert, bevor es benutzt wird, der Aufruf ist, wenn der Körper geladen hat (Rückruf), die Funktion wird sofort deklariert. – falstro

+0

@shybovycha: Deklaration einer Funktion mit der "function identifier (...) {}" - Syntax deklariert sie eigentlich am Anfang ihres Gültigkeitsbereichs, also selbst wenn sie nicht als Callback verwendet wurde, wie es roe hervorgehoben wurde funktioniert noch immer. Lesen Sie über "hissen", wenn Sie neugierig sind. – Jakob

Antwort

0
success: processSquads() 

Diese Zeile ruft tatsächlich 'processSquads', ich glaube, Sie jQuery es nennen wollen, wenn es fertig ist ...

success: processSquads 

HTH.

+0

Vielen Dank, jetzt kann die Funktion den Parameter sehen, aber ich habe immer noch ein Problem, nur einige Dinge daraus zu wählen. Ich habe versucht, es in einem for zu durchlaufen und adressiere es durch response.items [i], aber es funktioniert nicht – Pillblast

2

Lassen Sie die Klammer Art und Weise von der Callback-Definition:

$.ajax({ 
    method: "get", 
    url: 'ctr_seearmylist.php', 
    dataType: 'json', 
    data: 'get="squad"', 
    success: processSquads 
}); 

Wenn Sie die Kontrolle über wollen, was genau in Ihrer Callback-Methode übergeben wird, können Sie die Definition in eine anonyme Funktion wickeln kann - zB:

$.ajax({ 
    method: "get", 
    url: 'ctr_seearmylist.php', 
    dataType: 'json', 
    data: 'get="squad"', 
    success: function(data, textStatus, XMLHttpRequest) { 
     processSquads(data, XMLHttpRequest); 
    } 
}); 
0

jQuery Dokumentation besagt, dass:

success(data, textStatus, XMLHttpRequest) 

A functi wird aufgerufen, wenn die Anfrage erfolgreich ist. Die Funktion erhält drei Argumente: Die vom Server zurückgegebenen Daten, formatiert nach dem Parameter 'dataType'; eine Zeichenfolge, die den Status beschreibt; und das XMLHttpRequest-Objekt (verfügbar ab jQuery 1.4). Dies ist ein Ajax-Ereignis.

Also, Sie müssen sicherstellen, dass Argumente richtig sind.