Comment puis-je PHP-unserialize un jQuery-forme sérialisée?
À l'aide de $('#form').serialize()
, j'ai pu envoyer à une page PHP. Maintenant, comment puis-je unserialize en PHP? Il a été sérialisé en jQuery.
- Pour ces questions, je recommande d'utiliser Firebug pour voir ce que les données dans ce format est envoyé au serveur. Vous pouvez facilement poster un exemple de vos données.
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas avoir à unserialize rien en PHP à partir de l'jquery
serialize
méthode. Si vous sérialiser les données, il doit être envoyé à PHP comme les paramètres de la requête si vous êtes en utilisant une méthode d'OBTENIR une requête ajax ou post vars, si vous utilisez un POSTE requête ajax. Donc, en PHP, vous devez accéder à des valeurs comme la$_POST["varname"]
ou$_GET["varname"]
selon le type de demande.La
serialize
méthode prend juste les éléments de formulaire et les met dans la forme d'une chaîne."varname=val&var2=val2"
serialize
retourne. Voir le très populaire de réponse ci-dessous.À condition que votre serveur reçoit une chaîne de caractères qui ressemble à quelque chose comme cela (qui devraient, si vous êtes à l'aide de jQuery
serialize()
):...quelque chose comme ceci est probablement tout ce que vous devez:
$params
devrait alors être un tableau modélisé de la façon dont vous vous attendez. Remarque cela fonctionne aussi avec des tableaux HTML.Voir la suite pour plus d'informations:
http://www.php.net/manual/en/function.parse-str.php
Espère que c'est utile. Bonne chance!
$params
?Warning Using this function without the result parameter is highly DISCOURAGED and DEPRECATED as of PHP 7.2. Dynamically setting variables in function's scope suffers from exactly same problems as register_globals. Read section on security of Using Register Globals explaining why it is dangerous.
//jQuery Post
//jquery.post sérialisé var - À - Tableau PHP en format
//Vous obtenez tout de même que
Dans HTML page:
sur PHP page:
sur ce code php, retour
f1
champ.Pourquoi ne pas utiliser un tableau associatif, de sorte que vous pouvez l'utiliser facilement
Ce qui concerne
$i = 0;
Modifié Murtaza Hussain réponse:
Simplement faire ce
Je ne sais pas quelle est la version de Jquery que vous utilisez, mais cela fonctionne pour moi en jquery 1.3:
Ensuite, vous pouvez accéder à des POSTES clés du tableau comme vous le feriez normalement en php.
Juste essayer avec un
print_r()
.Je pense que vous êtes d'emballage forme sérialisée de la valeur pour une propriété de l'objet, ce qui est inutile pour autant que je sais.
Espérons que cette aide!
C'est en réponse à user1256561. Merci pour votre idée.. mais je n'ai pas pris soin de l'url de décoder les trucs mentionnés à l'étape 3.
voici donc le code php qui va décoder la forme sérialisée de données, si quelqu'un d'autre en a besoin. Par le chemin, utilisez ce code à votre propre discrétion.
L'url publier des données d'entrée seront comme: attribut1=valeur1&attribut2=valeur2&attribute3=valeur3 et ainsi de suite
De sortie de code ci-dessus sera encore dans un tableau et vous pouvez la modifier pour obtenir affecté à la variable que vous voulez et il dépend de la façon dont vous souhaitez utiliser ces données plus loin.
Vous avez juste besoin de la valeur de l'attribut nom de la forme. Exemple :
Forme
Javascript
PHP index.php
Je pense que vous avez besoin de séparer la forme des noms à partir de ses valeurs, une méthode pour ce faire est d'exploser
(&)
de sorte que vous obtiendrezattribute=value,attribute2=value
.Mon point ici est que vous allez vous convertir le sérialisé jQuery chaîne dans des tableaux en PHP.
Voici les étapes que vous devez suivre pour être plus précis.
jQuery
à unPHP
page e.gajax.php
)lorsque vous utilisez
$.ajax
à soumettre à l'aide de post ou get.(&)
ainsi, en séparant chaqueles attributs. Maintenant, vous pouvez profiter attribut1=valeur, attribut2=la valeur, maintenant
vous obtiendrez un tableau php variable. e.g
$data =
array("attribute1=value","attribute2=value")
foreach
sur$data
etexplode
la(=)
de sorte que vous pouvezséparer l'attribut de la valeur, et assurez-vous de
urldecode
la valeur de sorte qu'il vous permet de convertir les valeurs linéarisées à la valeur
que vous avez besoin, et insérer l'attribut et sa valeur à un nouveau tableau
variable qui stocke l'attribut et la valeur de la sérialisé
chaîne de caractères.
Laissez-moi savoir si vous avez besoin de plus de précisions.
Utilisation:
Php obtenez tableau, n'ont pas besoin de unserialize 😉