[Ajax][JavaScript] ne pas perdre données POST

Fermé
moije - 20 avril 2010 à 16:59
 moije - 21 avril 2010 à 15:42
Bonjour,

Je souhaite garder mes données POST durant toute la navigation sur mon site. Mais je ne vois pas comment faire.

J'ai trois fichiers principaux : l'index, un fichier JavaScript, et un contrôleur ajax.
Dans l'index, j'appelle une fonction js avec un argument.
La fonction js transmet l'argument au contrôleur en POST.
Le contrôleur ajax fait un echo de contenu et le js traite ce contenu.
(et l'index traite les données s'il y en a)

Le contenu, en l'occurrence, peut être un formulaire, dont les données sont elles-aussi passées par POST.

Je ne suis pas sûr de faire comme il faudrait, mais bon... (Il faut me le dire, si c'est le cas!)

Ce que je voudrais, donc (et enfin!), c'est garder toutes les données POST qui ont pu être générées.
J'ai par exemple 2 formulaires à la suite. quand je clique sur submit du 2eme formulaire, je n'ai plus les données POST du premier, et j'en ai besoin!

Mes explications sont très brouillonnes, mais si un courageux pouvait me donner un coup de main...

6 réponses

adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
21 avril 2010 à 13:32
exemple très simple :

1er formulaire page1.php
<form name="form1" action="page2.php" method="POST">
Nom :  <input type="text" name="nom">
<br>
<input type="submit" value="envoyer">
</form>



2eme formulaire page2.php
<form name="form2" action="page3.php" method="POST">
<input type="hidden" name="nom" value="<?php echo $_POST['nom']; ?>">
prenom :  <input type="text" name="prenom">
<br>
<input type="submit" value="envoyer">
</form>



page d'affichage page3.php

<?php 
echo "nom : ".$_POST['nom']; 
echo "prenom : ".$_POST['prenom']; 
?>



Adns
1
adns Messages postés 1094 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 27 mars 2012 153
21 avril 2010 à 11:15
Bonjour

une idée de réponse :

lors de l'envoi de ton premier formulaire et l'affichage du seconde insère les données que tu veux garder dans des champs cachés (type: hidden)

Adns
0
Ouai je pense la même solution que adns, ou sinon s'orienter vers les variables de sessions.
0
Je ne vois pas comment mettre dans des champs cachés, mais de toute façon, les variables de sessions me semblent plus pertinentes... je crois...

Merci à vous deux
0
Oui mais page2.php ne connait déjà plus $_POST['nom']!

Pour l'instant, je fais :
<script type="text/javascript">
$(function(){
choixPage("<?php echo $_POST['page'];?>");
});
</script>
Il n'y aurait pas possibilité de passer tout le $_POST ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ce qu'a fait Adns fonctionne très bien, car sachant que dans sa page deux, il stock $_POST['nom'] dans une input de type hidden et de name = 'nom',
donc lorsque tu valides le formulaires de la page 2, il envois en post la valeur de l'input type hidden nommé 'nom'.

Si tu comprend pas de trop le code, change la methode POST en GET, et regarde le cheminement des variables.
0
ça ne fonctionne pas, ça.

Les données POST sont perdues lorsque je génère le formulaire2.

Du coup, je me demande si je fais comme il faut pour générer mes pages...
0