Comment obtenir les valeurs POST de serializeArray en PHP?
Je suis en train d'essayer cette nouvelle méthode que j'ai vu serializeArray()
.
//with ajax
var data = $("#form :input").serializeArray();
post_var = {'action': 'process', 'data': data };
$.ajax({.....etc
Si je reçois ces paires clé-valeur, mais comment puis-je accéder avec PHP?
J'ai pensé que j'avais besoin de faire cela, mais il ne fonctionne pas:
//in PHP script
$data = json_decode($_POST['data'], true);
var_dump($data);//will return NULL?
Merci, Richard
Avez-vous traiter la valeur de retour de
merci, j'ai essayer de l'utiliser comme un tableau associatif par la suite. Je suis maintenant de ranger le poste de tableau dans une variable de session afin que je puisse faire un print_r ou var_dump quelque part d'autre. Maintenant, je ne peux pas voir quoi que ce soit.
json_decode
en quelque sorte?merci, j'ai essayer de l'utiliser comme un tableau associatif par la suite. Je suis maintenant de ranger le poste de tableau dans une variable de session afin que je puisse faire un print_r ou var_dump quelque part d'autre. Maintenant, je ne peux pas voir quoi que ce soit.
OriginalL'auteur Richard | 2010-02-10
Vous devez vous connecter pour publier un commentaire.
Comme Gumbo proposée, vous êtes probablement pas le traitement de la valeur de retour de la fonction json_decode.
Essayez
Si
$data
ne contient pas les données attendues, alorsvar_dump($_POST);
pour voir ce que l'appel Ajax fait un post à votre script. Peut-être que vous essayez d'accéder à l'JSON de la mauvaise touche.MODIFIER
En fait, vous devriez assurez-vous que vous êtes vraiment envoyer JSON dans la première place 🙂
Le jQuery docs pour sérialiser état L' .serializeArray() la méthode crée un JavaScript tableau d'objets, prêt à être codé comme une chaîne JSON. Prêt à être codé n'est pas JSON. Apparemment, il n'y a pas de Object2JSON fonction jQuery donc soit utiliser https://github.com/douglascrockford/JSON-js/blob/master/json2.js en 3ème partie lib ou de l'utilisation http://api.jquery.com/serialize/ à la place.
Il semble que vous êtes de droite et Saffraz. Je vais regarder dans sérialiser ensuite.
OriginalL'auteur Gordon
La structure JSON retourné n'est pas une chaîne. Vous devez utiliser un plugin ou d'un tiers de la bibliothèque de "stringify". Voir ce pour plus d'info:
http://www.tutorialspoint.com/jquery/ajax-serializearray.htm
c'est possible, mais vous devrez trouver un moyen de contourner cela.
OriginalL'auteur Sarfraz
Les OP pourraient avoir actuellement encore utilisés serializeArray() au lieu de simplement la fonction serialize() en apportant les modifications suivantes:
OriginalL'auteur Clark Burns
son possible en utilisant la sérialisation tableau et la fonction json_decode()
les valeurs sont reçus comme un tableau
chaque valeur peut être récupérée en utilisant $valeur[0]['value'] chaque composant html nom est donné comme $valeur[0]['nom']
OriginalL'auteur Shinto Anto
J'ai une situation très semblable à cela et je crois que Ty W a la réponse correcte. Je vais inclure un exemple de mon code, juste au cas où il y a suffisamment de différences de changer le résultat, mais il semble que vous pouvez simplement utiliser les valeurs comme vous le feriez normalement en php.
C'est vraiment un exemple simplifié, mais je pense que le point clé est que vous ne voulez pas utiliser le
json_decode()
méthode qu'il a probablement produit indésirable de sortie.OriginalL'auteur Seymore Throttle
le javascript n'est pas de changer la manière dont les valeurs postées t-il? Ne devriez-vous pas être en mesure d'y accéder via PHP comme d'habitude à travers
$_POST['name_of_input_goes_here']
edit: vous pouvez toujours vider le contenu de $_POST pour voir ce que vous recevez de l'javascript soumission de formulaire à l'aide de
print_r($_POST)
. Qui vous donnera une idée sur ce que vous devez faire en PHP pour accéder aux données dont vous avez besoin.si j'utilise la fonction json_decode, la valeur de retour est NULLE.
OriginalL'auteur Ty W
Vous pouvez utiliser cette fonction en php pour inverser serializeArray().
OriginalL'auteur Adriano de Abreu Wanderley