IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Perte de données entre deux pages. ( "Bouton Suivant" et "Précédent" )


Sujet :

PHP & Base de données

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 42
    Points : 258
    Points
    258
    Par défaut Perte de données entre deux pages. ( "Bouton Suivant" et "Précédent" )
    Bonjour, je vais tenté de vous décrire mon problème.
    J'ai réalisé deux simulations que j’appellerais "Cas n°1" et "Cas n°2".

    Cas n°1 :
    J'ai un formulaire qui s'étale sur plusieurs pages.

    PAGE 1 ------- PAGE 2 ------- PAGE 3



    Lorsque je remplis les champs de la première page correctement et que j'appuis sur le bouton suivant, les données sont sauvegardés dans des variables de sessions et sont sauvegardés dans ma page 2.

    PAGE 1 ->-->-- PAGE 2 ------- PAGE 3


    Arrivé sur la page 2 j'ai une nouvelle fois des champs à remplir, il y a en plus un bouton supplémentaire (lien simple en relatif) qui renvoie sur la page 1 du formulaire.
    Sauf que les données précédemment entrés dans les champs de la page 1 ont disparu, les inputs sont vides...

    PAGE 1 -----X< PAGE 2 ------- PAGE 3



    Cas n°2 :
    En réalisant le même test mais en appuyant directement sur le bouton "précédent"(navigateur) de la page 2, les données sont bien présentes dans les champs de la page 1.

    PAGE 1 -<---<- PAGE 2 ------- PAGE 3



    Question : Comment puis-je appliqué le même résultat que le Cas n°1 mais en gardant le principe du Cas n°2<==(faux boutons "précédent/suivant" en tant que lien).


    Un GRAND merci !

  2. #2
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    avec un lien, ton formulaire n'est pas soumit...pas étonnant que tu n'es plus les anciennes valeurs, passe par deux boutons submit...avec un même script pour traiter les trois formulaires.
    Développeur informatique contrarié...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    les SESSIONS sont une bonne idée, encore faut-il savoir l'utiliser "à fond" :

    A CHAQUE ETAPE, Avant le formulaire (exemple), on initialise les variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    // Initialisation
    // -----------------------
    // Message
    $contact_Sujet		= (isset($_SESSION['contact']['contact_Sujet']))? 		$_SESSION['contact']['contact_Sujet'] : '';
    $contact_Message	= (isset($_SESSION['contact']['contact_Message']))? 	$_SESSION['contact']['contact_Message'] : '';
    // ...
    ?>
    Et dans le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <p>
    	<label for="idcontact_Sujet">Sujet :</label>
    	<input id="idcontact_Sujet" name="contact_Sujet" type="text" value="<?php echo $contact_Sujet; ?>" />
    </p>
    <p>
    	<label for="idcontact_Message">Message :</label>
    	<textarea id="idcontact_Message" name="contact_Message" rows="4" cols="50" ><?php echo $contact_Message; ?></textarea>
    </p>
    Il suffit ensuite de valider chaque formulaire, de le traiter et d'enregistrer les SESSIONS à chaque étape, avant de passer à l'étape suivante.

    Par contre, il est évident que chaque formulaire doit être "soumis" pour être traité et prendre en compte les modifications.
    Donc :
    - éviter un faux bouton (lien) "suivant" (préférer un vrai bouton (submit) "valider")
    - on peut cependant avoir un faux bouton (lien) "précédent" ou "corriger"

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 42
    Points : 258
    Points
    258
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    Sur la page1 j'ai une serie de champs input text qui récupère bien les valeurs dans des variables de sessions:

    Un exemple pour l'input "non" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="conteneur_input">	
    			<div class="border1"><input type="text" name="nom" id="nom" value="<?php if(isset($nom)) echo $nom; ?>" maxlength="25"/></div>
    </div>
    Sur la page 2 je déclare tout d'abord un session_start(); puis je stock les variables de la page 1 comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    session_start();
     
    	$_SESSION['Civilite'] = $_POST['civilite'];
    	$_SESSION['Nom'] = $_POST['nom'];
    	$_SESSION['Prenom'] = $_POST['prenom'];
    	$_SESSION['Email'] = $_POST['email'];
    	$_SESSION['Adresse'] = $_POST['adresse'];
    	$_SESSION['Code postal'] = $_POST['codepostal'];
    	$_SESSION['Ville'] = $_POST['ville'];
    	$_SESSION['Tel'] = $_POST['tel'];
    	$_SESSION['Date de naissance'] =$_POST['jour'] . '/' . $_POST['mois'] . '/' . $_POST['annee'];
     
    ?>
    Une serie d'autres input sont à remplir sur la page 2 et en bas je déclare mes boutons comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<div id="conteneur_submit">
    		<input type="button" id="btn_next"/><!-- suivant -->
    		<a href="contact.php" target="_self" ><div id="precedent"></div></a><!-- précédent -->
    	</div>
    J'utilise dors et déjà bien un button submit pour le suivant, et les variables sont bien gardés, car je fais un print_r session sur la page suivante et toute les données sont bien là.
    C'est simplement le bouton précédent qui ne fonctionne pas, enfin pas totalement, on m'a dit qu'avec un lien en _self on forçait le navigateur à faire eun nouveau chargement, donc de faire disparaître les données, ce n'est pas vraiment un bouton précédent comme celui du navigateur.

    Je me pose une question, ne dois-je pas déclarer toute les variables aussi dans la page 1 (contact.php) ? de la même façon que je fais sur la page 2 ?


    Voici le formulaire en question: ICI

  5. #5
    Invité
    Invité(e)
    Par défaut
    C'est ce que je t'ai indiqué plus haut :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    // Initialisation
    // -----------------------
    $nom		= (isset($_SESSION['Nom']))? 	$_SESSION['Nom'] : '';
    // ...
    ?>
    Cette syntaxe est équivalente à :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_SESSION['Nom'])) {	$nom = $_SESSION['Nom']; } else { $nom = ''; }
    Il faut initialiser ainsi toutes les variables du formulaire.

    PS : session_start() en haut de CHAQUE page.

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 42
    Points : 258
    Points
    258
    Par défaut
    Merci jreaux62 ça fonctionne super bien

    J'aurai éventuellement une autre question, dois-je réouvrir un nouveau sujet ou puis-je en profiter pour la rédiger ici ? sachant que cette dernière concerne la "redirection automatique php".

    Merci

  7. #7
    Invité
    Invité(e)
    Par défaut


    ouvre un nouveau sujet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/02/2011, 16h23
  2. [Wamp] Perte d'informations entre deux pages
    Par sneb5757 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 24/09/2007, 11h20
  3. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38
  4. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01
  5. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo