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 :

Affichage d'une page selon liste déroulante


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 62
    Points : 26
    Points
    26
    Par défaut Affichage d'une page selon liste déroulante
    Bonjour,

    je développe un site avec un formulaire de contact pour déclarer un incident.
    Il y a plusieurs incidents possibles qui sont dans une liste déroulante.

    Je souhaiterais que selon le type d'incident sélectionné, un formulaire spécifique s'affiche en dessous de cette liste déroulante.

    J'ai réussi à faire en sorte que lorsqu'un type d'incident est sélectionné, il y a une redirection automatique vers le formulaire adéquat mais je souhaiterais que la liste déroulante reste affichée...

    J'espère m'être fait comprendre....

    Vous pouvez visualiser ma plateforme de test : http://www.baudlocminehb.info/www/Contact/Accueil.htm

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Ce que je peux dire là, le mieux c'est d'utiliser un div pour chaque formulaire et sur le onchange tu affiches le div concerné et tu fais disparaître les autres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('idformulaire').style.display='block'; // pour afficher
    et pour faire disparaitre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('idformulaire').style.display='none'; // pour faire disparaitre

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    ca veut dire qu'il faut que mes formulaires doivent être stockés sur la même page html ? Je ne peux pas avoir un form par page ?

    ça m'embête un peu car je voudrais bien qu'il n'y ait qu'un seul formulaire par page car ce n'est pas moi qui modifiera ces formulaires si besoin et vu qu'il n'y connaissent pas grand chose ici

  4. #4
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Tu peux utiliser la fonction include() de PHP, 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <form id="form" name="form" method="get" action="">
    <select name="incident" id="incident" onchange="this.form.submit();">
        <option value="" <?php if (!(strcmp("", $_GET['incident']))) {echo "selected=\"selected\"";} ?>>Sélectionnez un incident</option>
        <option value="1" <?php if (!(strcmp(1, $_GET['incident']))) {echo "selected=\"selected\"";} ?>>1</option>
        <option value="2" <?php if (!(strcmp(2, $_GET['incident']))) {echo "selected=\"selected\"";} ?>>2</option>
        <option value="3" <?php if (!(strcmp(3, $_GET['incident']))) {echo "selected=\"selected\"";} ?>>3</option>
        <option value="4" <?php if (!(strcmp(4, $_GET['incident']))) {echo "selected=\"selected\"";} ?>>4</option>
      </select>
    </form>
    <br />
    <?php
    if ($_GET['incident'] == "1") {
    include("form_incident1.php") ;
    }
     
    if ($_GET['incident'] == "2") {
    include("form_incident2.php") ;
    }
     
    etc......
     
    ?>

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    Oui ok ça fonctionne vraiment bien, c'est réellement ce que je veux !

    Merci beaucoup...

    Pierre

  6. #6
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 206
    Points : 194
    Points
    194
    Par défaut
    Bonjour,

    Tout d'abord, cutpeter56 ton code (ou plutot ta façon de faire) m'intéresse beaucoup puisque je butte sur ça depuis un petit moment. J'ai un select à 2 choix, et je voudrais afficher des informations suplémentaires dans le module d'inscription suivant le choix de la personne dans un menu déroulant (particulier ou professionnel). J'ai essayé avec le code de jumano, en l'adaptant bien entendu, et j'ai l'erreur suivante :

    Notice: Undefined index: inscription in E:\Program Files\EasyPHP 2.0b1\www\inscription\inscription.php on line 50

    Inscription correspond à 'incident' de jumano.

    La ligne 50 correspond au GET de :


    if ($_GET['inscription'] == "1") {
    include("test1.php") ;
    }

  7. #7
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Montre nous le code qui pose problème ...

  8. #8
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 206
    Points : 194
    Points
    194
    Par défaut
    Le voici :

    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
    <form id="form" name="form" method="get" action="">
    <select name="incident" id="incident" onchange="this.form.submit();">
        <option value="" <?php if (!(strcmp("", $_GET['inscription']))) {echo "selected=\"selected\"";} ?>>---choisir---</option>
        <option value="1" <?php if (!(strcmp(1, $_GET['inscription']))) {echo "selected=\"selected\"";} ?>>un particulier</option>
        <option value="2" <?php if (!(strcmp(2, $_GET['inscription']))) {echo "selected=\"selected\"";} ?>>un professionnel</option>
      </select>
    </form>
    <br />
    <?php
    if ($_GET['inscription'] == "1") {
    include("test1.php") ;
    }
     
    if ($_GET['inscription'] == "2") {
    include("test2.php") ;
    }
    J'ai deux erreurs sur les $_GET

  9. #9
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    C'est normal puisque le "name" de ton "select" est : incident.
    Il faut soit modifier le nom de ton select en : inscription ou alors modifier tes $_GET ...

  10. #10
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 206
    Points : 194
    Points
    194
    Par défaut
    oui pardon, j'ai fait une erreur de C/C.

    Ca me fait donc les mêmes erreurs avec ça


    edit : Ah en fait, la page inscription.php m'affiche des erreurs.

    Par contre, si je change de choix dans la liste déroulante, j'arrive à une page sans erreur et qui a pour url http://localhost/inscription/inscrip...p?inscription=

    Il faut donc que je mette ce lien pour les inscriptions ?

    Merci d'avance

  11. #11
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Essaye de rajouter un isset() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if(isset($_GET['incident'])) {
     
    if ($_GET['incident'] == "1") {
    include('test1.php') ;
    }
     
    if ($_GET['incident'] == "2") {
    include('test2.php') ;
    }
    }
    ?>

  12. #12
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 206
    Points : 194
    Points
    194
    Par défaut
    Oui voila, le problème vient de là (j'ai edité mon poste au dessus)

    Par contre j'ai des "undefined index : inscription in : [...] on line 7 selected="selected" etc..., c'est à dire dans tous mes choix de ma liste déroulante lors de mon appel à inscription.php

  13. #13
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    C'est bizarre quand je teste chez moi, je ne suis pas obligé d'ajouter des isset().
    Essaye avec ce code :
    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
    <form id="form" name="form" method="get" action="">
    <select name="inscription" id="inscription" onchange="this.form.submit();">
    <option value="" <?php if(isset($_GET['inscription'])) {if (!(strcmp("", $_GET['inscription']))) {echo "selected=\"selected\"";} }?>>---choisir---</option>
    <option value="1" <?php if(isset($_GET['inscription'])) {if (!(strcmp(1, $_GET['inscription']))) {echo "selected=\"selected\"";} }?>>un particulier</option>
    <option value="2" <?php if(isset($_GET['inscription'])) {if (!(strcmp(2, $_GET['inscription']))) {echo "selected=\"selected\"";} }?>>un professionnel</option>
    </select>
    </form>
    <br />
    <?php
    if(isset($_GET['inscription'])) {
     
    if ($_GET['inscription'] == "1") {
    include('test1.php') ;
    }
     
    if ($_GET['inscription'] == "2") {
    include('test2.php') ;
    }
    }
    ?>

  14. #14
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 206
    Points : 194
    Points
    194
    Par défaut
    En effet, ça marche parfaitement.

    Un grand merci!

  15. #15
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 62
    Points : 26
    Points
    26
    Par défaut
    Une question me vient :

    Serait-il possible de mettre en place ce code en double ? je m'explique....

    Un liste déroulante qui affiche une page selon la sélection de la liste déroulante...Page qui contiendrait un autre liste déroulante qui permettrais l'affichage d'un 3ème page...

    J'espère avoir été clair, n'hésitez pas si ça n'a pas été le cas...

    Merci de votre collaboration
    Pierre

  16. #16
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Bonjour tous!
    Ce code est génial pour la liste déroulante, ça fesait 3 jours que je cherchais une solution comme ça.
    Jl'ai donc repris pour mon site, mais j'ai un problème.
    Enfaite j'ai une page index.php qui inclu toutes mes autres pages, notamment liste.php donc ça me donne ça pour aller à ma page ou j'ai cette liste deroulante : index.php?pages=liste.php
    Le problème c'est lorsque que je fait un choix dans ma liste déroulante, eh ben ça me renvoie sur l'adresse index.php?incident=2. Et donc j'arrive sur ma page index de base alors que je devrais arriver sur index.php?pages=liste.php?incident=2. J'comprend pas.
    Jpense que c'est au niveau du this.form.submit(); nan?
    Bref j'attends voter aide!!! svp

Discussions similaires

  1. Réponses: 13
    Dernier message: 17/03/2009, 16h31
  2. Réponses: 7
    Dernier message: 07/11/2008, 10h45
  3. Index et affichage d'une page selon liste déroulante
    Par weezer999 dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2008, 15h15
  4. Réponses: 14
    Dernier message: 21/03/2008, 19h21
  5. Affichage des valeurs disponibles dans une zone de liste déroulante
    Par azerty dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 12h29

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