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 :

option onChange() dans un select [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut option onChange() dans un select
    Bonjour!

    Voilà voilà encore novice en php, j'ai un problème avec une page dans laquelle j'ai un champ select tout simple avec quelques valeurs (0,1,2,3) et j'aimerai afficher une autre série bien définie d'input (divers text, radio et autres) sur cette même page en fonction du résultat du premier select.

    Avec un exemple ça donne :

    select : Choisissez 0, 1, 2, 3

    si 0 sélectionné : rien à ajouter
    si 1 sélectionné : rajouter Personne n°1 <input text etc...>
    si 2 sélectionné : rajouter Personne n°1 <input text etc...> Personne n°2 <input text etc...>
    si 3 sélectionné : rajouter Personne n°1 <input text etc...> Personne n°2 <input text etc...> Personne n°3 <input text etc...>

    Le gros problème est que, si j'arrive actuellement à faire tout ça en cliquant sur un bouton de type submit juste après le 1er select, je voudrai arriver à faire sans et à pouvoir recharger la page toute seule en utilisant l'option onChange, mais ça a pas l'air de vouloir :'( ...

    fonction actualiser dans le onChange()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script language="Javascript">
    function Actualiser() {
     
       this.form.submit(); 
       if($_POST['etape5_question1'] != "check"){
           $_SESSION['etape5_question1'] = $_POST['etape5_question1'];
           javascript:location.reload();
       }else{
           $erreur_etape5_question1 = "Nombre de personnes : Veuillez sélectionner une réponse.";
       }
    }
    </script>
    premier select censé influer sur la suite de la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Nombre de personnes : <select name="etape5_question1" onChange="Actualiser();">
                    <option value="check">Choisissez</option>
                    <option value="0" <?php if ($_SESSION['etape5_question1'] == '0') {echo 'selected="selected"';}?> >0</option>
                    <option value="1" <?php if ($_SESSION['etape5_question1'] == '1') {echo 'selected="selected"';}?> >1</option>
                    <option value="2" <?php if ($_SESSION['etape5_question1'] == '2') {echo 'selected="selected"';}?> >2</option>
                    <option value="3" <?php if ($_SESSION['etape5_question1'] == '3') {echo 'selected="selected"';}?> >3</option>
                    </select>
    actuelle bouillie pour générer la 2ème partie de mon formulaire, désolée je sais que c'est pas propre les echo comme ça, mais j'ai toujours pas trouvé mieux pour rester dans mes boucle if et for
    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
    <?php if(isset($_POST['etape5_question1'])){
                        if($_POST['etape5_question1'] == '1' ||  $_POST['etape5_question1'] == '2' || $_POST['etape5_question1'] == '3'){
     
                            for($a = 1; $a <= $_POST['etape5_question1']; $a++){
                                echo '<strong>Personne n°'.$a.' :</strong>';
                                echo "<br />";
     
                                echo 'Monsieur <input type="radio" name="etape5_question2_'.$a.'" value="Monsieur" <?php if($_SESSION["etape5_question2_'.$a.'"] == "Monsieur"){echo \'checked="checked"\';}?> >';
                                echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
     
                                echo 'Madame <input type="radio" name="etape5_question2_'.$a.'" value="Madame" <?php if($_SESSION["etape5_question2_'.$a.'"] == "Madame"){echo \'checked="checked"\';}?> >';
                                echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
     
                                echo 'Mademoiselle <input type="radio" name="etape5_question2_'.$a.'" value="Mademoiselle" <?php if($_SESSION["etape5_question2_'.$a.'"] == "Mademoiselle"){echo \'checked="checked"\';}?> >';
                                echo "<br />";
                                echo "<br />";
                            }
                        }
                    }
                    ?>
    Pour l'instant, j'ai juste l'impression que le onChange recharge rien :s
    Quelqu'un aurait une idée svp? :s

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Il faut que tu fasses une redirection en javaScript et y passant le paramètre de l'option choisi (recherche de la valeur avec document.getElementById(selectId) OU tu peux modifier un champ hidden (même méthode) puis à l'affichage de la page récupérer ce champ.
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script language="Javascript">
    function Actualiser() {
     
       this.form.submit(); 
       if($_POST['etape5_question1'] != "check"){
           $_SESSION['etape5_question1'] = $_POST['etape5_question1'];
           javascript:location.reload();
       }else{
           $erreur_etape5_question1 = "Nombre de personnes : Veuillez sélectionner une réponse.";
       }
    }
    </script>
    Ici tu mélanges du PHP dans du JS... ça ne peut pas marcher.
    Fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script language="Javascript">
    function Actualiser() {
       alert('coucou');
    }
    </script>
    Et regarde si quand tu changes t'as ce message ;-)
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    En effet ça m'affiche bien le message d'alert, donc c'est bien que j'ai au moins dû écrire ma fonction comme un pied ^^""

  5. #5
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($_POST['etape5_question1'] != "check"){
           $_SESSION['etape5_question1'] = $_POST['etape5_question1'];
           javascript:location.reload();
       }else{
           $erreur_etape5_question1 = "Nombre de personnes : Veuillez sélectionner une réponse.";
       }
    Ceci est du PHP, et tu ne peux pas faire ça.
    Oriente toi du côté javascript si tu veux de l'aide ;-)
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ok merci tout plein ! Je vais commencer à bidouiller ça. Je clos le tout dès que j'y arrive.

  7. #7
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    A part alert(), du code js dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script language="Javascript">
    function Actualiser() {
    	// On récupère l'élement html <select>	
                 var selectElmt = document.getElementById(selectId);	
                //selectElmt.options correspond au tableau des balises <option> du select	
                //selectElmt.selectedIndex correspond à l'index du tableau options qui est actuellement sélectioné	
                var selectOpt = selectElmt.options[selectElmt.selectedIndex].value;
     
                 // La redirection 
                 window.location = 'http://www.blablabla?param='+selectOpt;  
    }
    </script>
    $_GET['param'] pour récupérer la valeur du select dans ta page redirigé puis affichage
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour toute l'aide j'ai réussi à en venir à bout du coup!
    Me reste plus qu'à traiter les formulaires générés.
    *courage courage*

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

Discussions similaires

  1. [script.aculo.us] <option> draggables dans un <select>
    Par Bownobo dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 03/10/2008, 10h03
  2. Nombre d'options affichées dans un select
    Par 4R416N33 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/09/2008, 10h39
  3. Modifier l'option sélectionnée dans un select
    Par GLSpirit dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2008, 10h42
  4. onChange dans un select
    Par nebule dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/12/2007, 11h19
  5. onchange dans un select
    Par n@n¤u dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2006, 13h57

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