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 :

Navigation entre formulaires


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut Navigation entre formulaires
    Bonjour à toutes et tous,

    Voici ce que j'essaie de faire, en utilisant des variables de session et un formulaire récapitulatif, posté à la fin:

    - une premiere page (page1) avec un formulaire, genre index, qui permet à l'utilisateur de faire une selection de certains questionnaires (par exemple, l'internaute choisi le questionnaire n°1, le n°2 et le n°4)

    - la premiere page se valide et envoie à une deuxieme page les variables de session qui stockent les questionnaires choisis

    - ma deuxieme page (page2) teste les questionnaires choisis puis affiche le premier questionnaire avec un include(questionnaire1.php)

    - ce questionnaire1.php est encore un formulaire que je valide en postant les valeurs dans la page contenante (page2)

    - la page 2 teste puis affiche un nouveau questionnaire dans "l'include" mais cette fois c'est le deuxième questionnaire

    - en plus de tester pour voir quel questionnaire afficher, j'affecte les variables de session correspondant aux valeurs des champs des questionnaires


    - ... je continue comme cela: affectation variables, test du questionnaire a afficher, affichage du questionnaire dans un include, puis validation etc...

    - à la fin, quand tous les questionnaires ont ete remplis, un par un, par l'utilisateur, en validant, les variables sont postées dans un email !


    Alors voila, je ne sais pas si vous voyez ce que je fais, il s'agit d'une page permettant de choisir quels formulaires on souhaite, puis on remplit un par un ces formulaires selectionnés, et enfin, on envoit en un mail les données saisies dans tous ces formulaires.

    Ma méthode est lourde, pas terrible, surtout que je perds mes valeurs de variables de session!

    En effet, j'ai voulu faire quelque chose de générique. Ma page2 affecte les valeurs du formulaire dans les variables de session, mais quand je change de questionnaire, les variables représentant les données du questionnaire précédent, sont mises a jour avec des valeurs nulles puisque on a changé de questionnaire dans "l'include" !

    Enfin voila, le principe n'est pas trop dur mais compliqué à expliquer. Comment vous y prendriez vous? si je n'ai pas été assez clair, signalez le moi!

    un énorme merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    salut


    c'est vrai que c'est pas tres clair... mai bon pourrez-tu detailler un peu plus
    ta procédure au niveau de l'affectation de tes champ dans tes variables de session.
    et aussi un peu de code serai le bienvenue

  3. #3
    Membre éclairé Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Par défaut
    Une solution serait de stocker les variables d'un formulaire dans mysql par des inserts (avec le code du formulaire à ce moment là) et de les récupérer ensuite par des selects en y accédant par le code.
    Comme ça tu ne passes que le code formulaire en variable de session.

    A+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut
    merci beaucoup de ces infos! je vais essayer d'etre plus clair!

    alors voici ma premiere page qui contient la liste des questionnaires, avec des checkbox devant pour que l'internaute choisisse ce qu'il veut (plusieurs choix possibles) :

    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
    <?
    session_start();
     <!--initialisation des variables du choix de questionnaire-->
    for($i=1;$i<=5;$i++){
    $_SESSION["questionnaire".$i]="";
    }
    
    <!--initialisation des variables de chaque questionnaire-->
    for($i=1;$i<=15;$i++){
        for($j=1;$j<=4;$j++){
        $_SESSION["questionnaire1_".$i."_".$j]="";
        }
    }
    
    for($i=1;$i<=18;$i++){
        for($j=1;$j<=4;$j++){
        $_SESSION["questionnaire2_".$i."_".$j]="";
        }
    }
    
    ...
    
    for($i=1;$i<=10;$i++){
        for($j=1;$j<=4;$j++){
        $_SESSION["questionnaire5_".$i."_".$j]="";
        }
    }
    
    ?>
    
    <!--liste des questionnaires-->
    <form name="formulaire_index" id="form1" method="post" action="questionnaire.php">
     <input name="questionnaire1" type="checkbox" id="choix1" value="questionnaire1" />
    questionnaire 1<br>
      <input name="questionnaire2" type="checkbox" id="choix2" value="questionnaire2" />questionnaire2<br>
    <br>
    ....
     <input name="questionnaire5" type="checkbox" id="choix5" value="questionnaire5" />questionnaire5<br>
    <br>
    <input type="submit" name="Submit" value="Envoyer" />
    </form>

    ensuite, j'ai une deuxieme page, qui fait l'affectation des variables (mais c'est la que ca bloque), qui teste quel questionnaire à afficher à présent, et qui affiche le questionnaire avec un "include"


    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
    <!-- attribution valeurs aux variables choix des questionnaires -->
    <?
    for($i=1;$i<=5;$i++){
    $_SESSION["questionnaire".$i]=${questionnaire.$i};
    }
    ?>
    
    <!-- attribution valeurs aux variables questionnaire 1 -->
    <?
    for($i=1;$i<=15;$i++){
        for($j=1;$j<=4;$j++){
        $_SESSION["questionnaire1_".$i."_".$j]=${questionnaire1_.$i._.$j};
        }
    }
    <!-- idem pour questionnaire2, 3, ...questionnaire5 -->
    ?>
    
    <!-- test et selection du questionnaire à afficher -->
    <? 
    if(!empty($_SESSION["questionnaire1"])){
    <!-- si l'utilisateur a choisi le questionnaire1, on l'affiche -->
        include('questionnaire1.php');
        }
    else
        {
    <!-- on teste s'il a choisi le questionnaire2 et on l'affiche -->
        if(!empty($_SESSION["questionnaire2"])){
                include('questionnaire2.php');
    <!-- on réitère jusqu'au dernier questionnaire, le 5 -->
    <!--et une fois que tout est passé en revue, on affiche la page "coordonnées.php" pour saisir les coordonnees et envoyer le mail récapitulant tout! -->
                         include('coordonnees.php');
        }
    ?>

    enfin, j'ai mes pages de questionnaires (celles contenues tour à tour dans la page du dessus) sous cette forme:

    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
    <FORM method="POST" action="questionnaire.php">
    
    <!--première liste déroulante de mon questionnaire1-->
    <select name="questionnaire1_1_1" id="questionnaire1_1_1">
              <option value="non r&eacute;alis&eacute;" selected>non r&eacute;alis&eacute;</option>
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
              <option value="6">6</option>
              <option value="7">7</option>
          </select>
    <!--il y en a pas mal encore apres !!!-->
    ....
    
    <!--et à la fin de chacun de mes questionnaire, je renvoie les résultats vers la page qui contient ("questionnaire.php") et je libère ma variable initiale, afin que le questionnaire suivant s'affiche à la place du questionnaire1-->
    <INPUT type="submit" value="valider">
      </FORM>
    <?
      $questionnaire1 = "";
      $_SESSION["questionnaire1"] = $questionnaire1; 
    ?>


    Voila, j'espere que vous comprendrez davantage ce que j'ai voulu faire, sachant qu'a mon avis, le probleme vient du fait que lorsque j'attribue mes valeurs de formulaire dans les variables de session, cela pose probleme apres le premier questionnaire saisit, car des valeurs nulles sont affectees aux variables qui stockaient les valeurs du premier questionnaire.

    vous voyez mieux?

    un grand merci d'ailleurs si vous prenez le temps de tout lire!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 59
    Par défaut
    si vous voulez plus de précisions, n'hésitez pas!

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    Je n'ai peut-être pas tout suivi, mais je vais essayer de reformuler ton cheminement :
    • Ta première page, dont je ne connais pas le nom, possède une form faisant appel à questionnaire.php et qui permet à ton client de choisir l'un des trois questionnaires via le checkbox
    • Ta seconde page affiche le questionnaire choisi par ton client dans ta première page. Donc, ta seconde page doit être questionnaire.php, puisque c'est celle-là qui est appelée dans ton form. Et donc, comment récupères-tu le choix de ton client ? Je m'attendais à trouver quelques part dans cette page un $_POST['questionnaire1'] par exemple
    • Je n'ai pas trop regardé ta troisième page, mais je m'étonne que son formulaire ait également comme action la page questionnaire.php. Pas que cela soit faux, mais cela veut dire que tu dois gérer les différents traitements, et je ne suis pas persuadé que tu le fasses.

Discussions similaires

  1. [AC-2007] Navigation entre formulaire principal et sous formulaire
    Par neiluj26 dans le forum IHM
    Réponses: 6
    Dernier message: 27/08/2010, 15h33
  2. [A-03] Créer une navigation entre formulaires
    Par MaxLaMenaX dans le forum IHM
    Réponses: 7
    Dernier message: 30/10/2008, 11h34
  3. navigation entre formulaire
    Par sunwind dans le forum IHM
    Réponses: 1
    Dernier message: 06/04/2008, 10h15
  4. Réponses: 1
    Dernier message: 14/08/2007, 15h37
  5. navigation entre formulaires
    Par samtheh dans le forum IHM
    Réponses: 1
    Dernier message: 14/06/2007, 20h45

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