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

Langage PHP Discussion :

Formulaire sur plusieurs pages php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Par défaut Formulaire sur plusieurs pages php
    Bonjour,

    Je ne m'en sors pas
    Voici mon cas :
    - "devis.php" : un premier formulaire sur lequel je fais les contrôles de saisie en php et sur la même page.
    - une fois le premier formulaire correct, et selon la valeur d'un des champs, j'appelle "livraison.php" ou "enligne.php" via le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once "livraison.php";
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once "enligne.php";
    - une troisième page de confirmation "confirmation_livraison.php" ou "confirmation_enligne.php "

    1er souci [RESOLU] : un texte présent sur devis.php apparait toujours dans livraison.php alors que le reste du formulaire devis.php n'apparait pas comme demandé

    2eme souci : quand je valide le formulaire de "livraison.php", c'est la page "devis.php" qui est réaffichée malgré le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once "confirmation_livraison.php";
    J'ai bient essayé la redirection via

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     header('location: livraison.php');
    mais j'ai la traditionnelle erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    headers already sent by output started
    ....
    J'ai essayé de modifier mon code mais j'ai du html partout je n'y arrive pas.
    Le include_once me parait pas mal, mais il reste ces 2 soucis..

    Est-ce que quelqu'un peut m'aider ?
    Souhaitez-vous davantage de code ?

    Merci beaucoup et excellente année à tous

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Sans voir le code qui gere tes enchainements c'est difficile de te repondre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Par défaut
    Bonjour Sabotage,

    Voici le code :

    devis.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php
     
    if(isset($_POST['envoyer'])){ // si une action est faite par l'utilisateur
    	$alerte = $_POST['envoyer']; //chargement du button envoyer
    	[...]; 
    }
     
     
    if(isset($alerte)){ // vérifie si l'utilisateur a fait l'action d'envoyer
    	verif_form($nb_mots,$domaine,$nom,$prenom,$email,$tel,$pays,$type_commande,$logiciel,$source,$liste_cibles,$prix_standard,$prix_HT,$remise,$nb_jours);
    }
     
     
    [...]
     
     
    function verif_form($nb_mots,$domaine,$nom,$prenom,$email,$tel,$pays,$type_commande,$logiciel,$source,$liste_cibles,$prix_standard,$prix_HT,$remise,$nb_jours){ 
    	if(verif_nb($nb_mots) && verif_null($domaine) && verif_null($nom) && verif_tel($tel) && verif_mail($email) && isset($liste_cibles) && $type_commande && $pays) { // vérifie si toutes les fonctions sont à true
    		switch ($type_commande) {
    			case "livraison":
    				$page_suivante="livraison";
    				include_once "livraison.php";
    				exit(); 
    				break;
    			case "enligne":
    				$page_suivante="enligne";
    				include_once "enligne.php";
    				exit(); 
    				break;
    		}
    	}
    	else {
    		echo "<font color=\"red\" size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\" ><strong>Veuillez remplir correctement tous les champs obligatoires (en rouge).</strong></font><br>";	
    	}
    }
    ?>
     
    <form name="formulaire" method="post"> 
     
    <?php if(!isset($page_suivante)){?>
    <h1> Votre devis automatique</h1><br> <!-- c'est ce titre qui continue d'apparaître meme sur livraison.php -->
    <?php } ?>
     
    [champs du formulaire]
    <input type="submit" name="envoyer" value="Envoyer">
    </form>

    livraison.php : (enligne.php focntionne pareil, les différences sont fonctionnelles)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     <?php
    if(isset($_POST['envoyer_livraison'])){ // si une action est faite par l'utilisateur
    	$alerte_livraison = $_POST['envoyer_livraison']; 
    	$cgv = $_POST['cgv']; 
    	$fichier = $_POST['fichier']; 
    }
     
    if(isset($alerte_livraison)){ // vérifie si l'utilisateur a fait l'action d'envoyer
    	verif_form_livraison($fichier,$cgv);
    }
     
    [...]
     
    function verif_form_livraison($fichier,$cgv){ //fonction qui vérifie si le formulaire est pret à etre envoyé
    	if(verif_null($fichier) && isset($cgv)) { // vérifie si toutes les fonctions sont à true
    		include_once "confirm_livraison.php";
    		exit(); 
    	} else {
    		if(!verif_null($fichier)){
    			echo "<font color=\"red\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\" ><strong>Vous devez joindre un fichier à traduire.</strong></font><br><br><br>";
    		}else if(!isset($cgv)){
    			echo "<font color=\"red\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\" ><strong>Vous devez accepter les conditons générales de vente</strong></font><br><br><br>";
    		}
    	}
    } 
    ?>
     
    <form name="formulaire_livraison" method="post"> 
     
    [champs du formulaire]
    <input type="submit" name="envoyer_livraison" value="Valider" />
    </form>
    La fonction verif_null() étant déja définie dans le fichier "devis.php", je le na remets pas dans "livraison.php"

    Au clic sur "Valider" adns livraison.php c'est le formulaire devis.php qui se réaffiche
    - au lieu de "confirm_livraison.php", s'il n'y a pas d'erreur dans le formulaire "livraison.php"
    - au lieu de "livraison.php", s'il y a des erreurs dans le formulaire "livraison.php"


    Merci bcp pour ton aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 214
    Par défaut
    Quand je regarde la source de la page devis.php avec l'include "livraison.php", je comprends mieux.. Il y a 2 formulaires, celui du devis et celui de la livraison.
    Il faut que je place mon include ailleurs je pense ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form name="formulaire" method="post"><!-- action=""> -->
     
    <h1> Votre devis automatique</h1><br>
    <body>
      <h1> Votre  commande</h1>
      <p>&nbsp;</p>
     
    <form name="formulaire_livraison" method="post"> 
     
    [...]
    </form>
    Ça résout mon souci d'affichage du titre en trop mais le formulaire n'est toujours pas posté

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

Discussions similaires

  1. Formulaire sur plusieurs pages
    Par sir_gcc dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/04/2007, 22h22
  2. Formulaire sur plusieurs pages qui bloque
    Par yiuche dans le forum Langage
    Réponses: 7
    Dernier message: 03/08/2006, 10h23
  3. Formulaire sur plusieur pages ?
    Par Phenomenium dans le forum Langage
    Réponses: 15
    Dernier message: 25/01/2006, 14h52
  4. Un formulaire sur plusieurs page
    Par gophette dans le forum Langage
    Réponses: 3
    Dernier message: 18/01/2006, 09h11
  5. Formulaire sur plusieurs pages
    Par Gourouni dans le forum ASP
    Réponses: 23
    Dernier message: 09/12/2005, 11h17

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