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

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

}); 

function processSquads(response) 
{ 
alert(response); 

} 

Pourquoi cela ne fonctionne-t-il pas? Comment puis-je utiliser le résultat Json que je reçois? Le résultat JSON ressemble à ceci [[1,2]] [[1,2]]analyse json avec jquery

Voici comment la fonction php qui est appelé ressemble: {...... $ temp [0 ] = $ id; $ temp [1] = $ identifiant_adaptateur;

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

J'ai regardé la réponse que je reçois dans Firebug et je reçois ceci: [[ "1", "12"], [ "2", "3"], [ "3", » 7 "]] mais je n'arrive pas à l'écrire. Je voudrais écrire seulement 1, 2, 3, mais je ne peux même pas écrire comme il est.

Je devrais mentionner que j'ai essayé de l'analyser en utilisant jQuery.parseJSON, mais dans la fonction process, squad ne reçoit même pas le paramètre. Qu'est-ce que je fais mal?

+0

peut-être les fonctions doivent être déclarées AVANT d'être utilisées? ;) – shybovycha

+0

@shybovycha; il est déclaré avant d'être utilisé, l'appel est quand le corps a été chargé (rappel), la fonction est déclarée immédiatement. – falstro

+0

@shybovycha: Déclarer une fonction avec la fonction "function identifier (...) {}" - la syntaxe la déclare effectivement au début de sa portée, donc même si elle n'était pas utilisée comme callback comme l'a souligné fonctionne toujours. Lisez à propos de "levage" si vous êtes curieux. – Jakob

Répondre

0
success: processSquads() 

Cette ligne appelle effectivement 'processSquads', je pense que vous voulez jQuery pour l'appeler quand il est fait ...

success: processSquads 

HTH.

+0

Merci, maintenant la fonction peut voir le paramètre, mais j'ai toujours un problème en ne sélectionnant que certaines choses. J'ai essayé de l'itérer dans un pour et l'adresser par response.items [i] mais ça ne marche pas – Pillblast

2

Laissez la manière de parenthèse de la définition de rappel:

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

Si vous voulez un contrôle sur ce qui est exactement passé dans votre méthode de rappel, vous pouvez envelopper la définition dans une fonction anonyme - par exemple:

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

documentation jQuery stipule que:

success(data, textStatus, XMLHttpRequest) 

A foncti sur être appelé si la demande réussit. La fonction reçoit trois arguments: Les données renvoyées par le serveur, formatées selon le paramètre 'dataType'; une chaîne décrivant le statut; et l'objet XMLHttpRequest (disponible à partir de jQuery 1.4). Ceci est un événement Ajax. Par conséquent, vous devez vous assurer que les arguments sont corrects.