2011-06-02 3 views
1

J'ai envoyé mes données (json) pour une requête ajax avec ce code;reverse serialize() -jquery

var formdata = $("#customForm").serialize(); 

      type: "post", 
      dataType: "json", 
      data: formdata, 

Dans le fichier php, il est possible d'inverser la sérialisation?

ou j'ai besoin de faire quelque chose comme ça: $pass = $_POST['pass']; pour tous les domaines?

merci

Répondre

1

il semble que vous vous dirigiez dans la bonne direction avec votre "ou" déclaration. Les données doivent être disponibles dans le tableau $ _POST sans avoir à "désérialiser" quoi que ce soit.

EDIT

Essayez de nommer vos champs d'entrée afin qu'ils viennent tous dans la variable post comme un tableau:

<input name="myformdata[first_name]" id="first_name" /> 
<input name="myformdata[last_name]" id="last_name" /> 

ensuite dans le tableau de poste, vous pouvez accéder à toutes les données de formulaire comme :

<?php $form_data_array = $_POST['myformdata']; ?> 
+0

@scott, le problème est le nombre de variables. –

+0

nommez vos champs de saisie afin que tous viennent dans un tableau. Je vais éditer mon post comme un exemple. –

+0

Je pense que c'est ce que vous voulez. Cherchez-vous à réduire le nombre de variables une fois que les données sont en PHP? Peut-être ai-je besoin d'éclaircissements sur ce dont vous avez besoin. Désolé pour la confusion. –

0

Ouais. Vous avez juste besoin d'accéder comme $pass = $_POST['pass'] :).

+0

mais j'ai plus de vingt champs ... Normalement, pour un, deux ou trois variables, ok, mais pour vingt est un peu ennuyeux –

+0

est toujours ennuyeux .. mais vous pouvez utiliser '$ _POST 'variable à n'importe où. – Tapos

1

Essayez la fonction PHP extract:

extract($_POST); 

Exemple:

$_POST = array('var_1' => 1234, 'var_2' => 'another variable'); 

extract($_POST); 

echo $var_1.' '.$var_2; 

Sorties:

1234 une autre variable

Appliqué à votre situation:

extrait ($ _ POST);

résulterait key => value paires présentes dans le tableau $_POST être extrait en variables.

Comme si vous faisiez $pass = $_POST['pass'] sur toutes les variables du tableau $_POST.

Explication:

extract importera les variables d'un tableau dans la table des symboles.

Il vérifie chaque clé pour voir si elle a un nom de variable valide. Il vérifie également les collisions avec les variables existantes dans la table de symboles.

De PHP Docs (extract)

+0

mais si j'ai envoyé un serializeArray(); J'ai besoin d'obtenir les valeurs dans le fichier php. Donc ce que vous sugest ont le même problème $ _POST = array ('var_1' => $ _POST ['pass']); . Je dois faire la même chose pour tous les varibales –

+0

Non, c'est un exemple, dans votre cas, vous pouvez simplement faire 'extract ($ _ POST);' - rien d'autre. Mon intention avec cet exemple était simplement de vous montrer du code qui peut fonctionner et obtenir un résultat similaire. –

+0

J'ai mis à jour ma réponse pour le rendre plus clair, je l'espère –