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 :

Liste déroulante et liens


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut Liste déroulante et liens
    salut les amis, je viens une fois de plus vous soumettre les soucis que je rencontre. j'ai lié une liste déroulante à des formulaires que j'ai créés.

    1er souci : le choix effectué me renvoie vers une autre page tandis que je souhaiterais que le formulaire apparaisse juste en dessous de la liste déroulante, serait-ce possible de le faire ? si oui, comment ?

    2ème souci : quand je repète ou quand j'ajoute la liste déroulante, l'option qui me permet de faire les liens est désactivée. comment faire en sorte qu'à chaque ajout de la liste déroulante la fonction qui me permet de faire des liens soit toujours active?

    3ème souci : comment enregistrer toutes les opérations qui auront été réalisées sur cette page?

    Ci-dessous le code réalisé.

    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
    <form name="formulaire" method="post" action="">   
                    <p>
                        <label for="pays"> Veuillez sélectionnner un item et remplir les zones de saisie </label><br />
    <?php
    $nombre = (isset($_POST['nombre'])) ? abs(intval($_POST['nombre'])) : 0;
    for ($i = $nombre; $i >= 0; $i--)
    {
    ?>
                            <select NAME="ListeUrl" SIZE=1 onChange="ChangeUrl(this.form)">
                                    <option value="test1.html">Geographie</option>
                                    <option value="test2.html">Histoire</option>
                                    <option value="test3.html">Chimie</option>
                                    <option value="test4.html">Anglais</option>
                                    <option value="test1.html">Espagnol</option>
                                    <option value="test2.html">Physique</option>
                                    <option value="test3.html">Francais</option>
                                    <option value="test4.html">Maths</option>
                            </select>
                            <tr>
                                    <td><input type="text" name="note1" id="note1" size="10" maxlength="10" /><td>
                                    <td><input type="text" name="note2" id="note2" size="10" maxlength="10" /><td>
                                    <td><input type="text" name="note3" id="note3" size="10" maxlength="10" /><td>
                            </tr><br>
    <?php
    }
    ?>
                            <input type="hidden" value="<?php echo ($nombre + 1); ?>" name="nombre" />
                            <input type="submit" value="ajouter" name="form" id="bouton" />
                        </p>
    </form>

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    Essayez ceci pour garder la saisie précédente
    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
    <?php
    function getPost($param,$nb){
    	if(isset($_POST[$param])){
    		if(isset($_POST[$param][$nb])){
    			return $_POST[$param][$nb];
    		}
    	}
    	return null;
    }
    ?>
    <form name="formulaire" method="post" action="">   
                    <p>
                        <label for="pays"> Veuillez sélectionnner un item et remplir les zones de saisie </label><br />
    <?php
    $nombre = (isset($_POST['nombre'])) ? abs(intval($_POST['nombre'])) : 0;
    for ($i = $nombre; $i >= 0; $i--)
    {
     
     
    ?>
    	<select NAME="ListeUrl[<?php echo $i?>]" SIZE=1 onChange="ChangeUrl(this.form)">
    			<option <?php if(getPost('ListeUrl',$i)=='test1.html'):?>selected="selected"<?php endif;?> value="test1.html">Geographie</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test2.html'):?>selected="selected"<?php endif;?> value="test2.html">Histoire</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test3.html'):?>selected="selected"<?php endif;?> value="test3.html">Chimie</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test4.html'):?>selected="selected"<?php endif;?> value="test4.html">Anglais</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test5.html'):?>selected="selected"<?php endif;?> value="test5.html">Espagnol</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test6.html'):?>selected="selected"<?php endif;?> value="test6.html">Physique</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test7.html'):?>selected="selected"<?php endif;?> value="test7.html">Francais</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test8.html'):?>selected="selected"<?php endif;?> value="test8.html">Maths</option>
    	</select>
    	<tr>
    			<td><input type="text" name="note1[<?php echo $i?>]" id="note1" size="10" maxlength="10" value="<?php echo getPost('note1',$i)?>"/><td>
    			<td><input type="text" name="note2[<?php echo $i?>]" id="note2" size="10" maxlength="10" value="<?php echo getPost('note2',$i)?>"/><td>
    			<td><input type="text" name="note3[<?php echo $i?>]" id="note3" size="10" maxlength="10" value="<?php echo getPost('note3',$i)?>"/><td>
    	</tr><br>
    <?php
    }
    ?>
    	<input type="hidden" value="<?php echo ($nombre + 1); ?>" name="nombre" />
    	<input type="submit" value="ajouter" name="form" id="bouton" />
    </p>
    </form>
    Pour l'enregistrement il suffit de boucler sur les 4 tableaux
    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
     
    <?php
     $tListeUrl=$_POST['ListeUrl'];
     $tNote1=$_POST['note1'];
     $tNote2=$_POST['note2'];
     $tNote3=$_POST['note3'];
     
     //boucle sur les tableaux
     foreach($ListeUrl as $i => $url){
    	//on recupere ici les donnees de chaque ligne
    	//$url
    	$note1=$tNote1[$i];
    	$note2=$tNote2[$i];
    	$note3=$tNote3[$i];
     }
    ?>
    Note : n'ayant pas la fonction javascript changeUrl() (non présente dans votre post), à chaque ajout tu as la ligne saisie precedement + une nouvelle ligne à saisir
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 374
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 374
    Billets dans le blog
    17
    Par défaut
    1er souci : le choix effectué me renvoie vers une autre page tandis que je souhaiterais que le formulaire apparaisse juste en dessous de la liste déroulante, serait-ce possible de le faire ? si oui, comment ?
    Revoir ta fonction Javascript ChangeUrl( ).

    2ème souci : quand je repète ou quand j'ajoute la liste déroulante, l'option qui me permet de faire les liens est désactivée. comment faire en sorte qu'à chaque ajout de la liste déroulante la fonction qui me permet de faire des liens soit toujours active?
    Pas compris.

    3ème souci : comment enregistrer toutes les opérations qui auront été réalisées sur cette page?
    Pas compris.

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2013
    Messages : 39
    Par défaut
    Salut imikado, merci pour ta proposition mais le fait est le résultat est le même.
    Je vais tenter au mieux d'expliquer mon souci. En fait je souhaiterais réaliser les taches suivantes :

    à partir du choix effectué dans la liste déroulante, afficher (juste en dessous de cette liste) le formulaire correspondant à ce choix.
    Cette action doit être répétitive, c'est-à-dire, afficher autant de fois qu'on le souhaite la liste déroulante (sur la même page) tout en gardant affiché le formulaire correspondant au choix effectué dans cette liste, de sorte à avoir au final sur la même page tous les choix effectués et les formulaires correspondant à ces choix.

    Le souci que je rencontre est que le choix effectué me redirige vers une autre page et la fonction me permettant de faire des liens se désactive automatiquement à chaque rajout de la liste déroulante.

    Espérant m'être fait compris, je vous remercie pour vos propositions.

    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
    48
    49
    50
    51
    52
    53
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<link rel="stylesheet" href="style.css" />
            <title>Saisie de Notes</title>
    		<!-- DEBUT DU SCRIPT --> 
    <script language="JavaScript"> 
    function ChangeUrl(formulaire) 
       { 
       if (formulaire.ListeUrl.selectedIndex != 0) 
          { 
    		 var url ; 
    		url =
    	 location.href = formulaire.ListeUrl.options[formulaire.ListeUrl.selectedIndex].value; 
           } 
       } 
    </script> 
        </head>
     
        <body>
     <form name="formulaire" method="post" action="">    
        <p>
            <label for="pays"> Veuillez sélectionnner un item et remplir les zones de saisie </label><br />
    <?php
    $nombre = (isset($_POST['nombre'])) ? abs(intval($_POST['nombre'])) : 0;
    for ($i = $nombre; $i >= 0; $i--)
    {
    ?>
        <select NAME="ListeUrl" SIZE=1 onChange="ChangeUrl(this.form)">
    	    <option value="test1.html" >Geographie</option>
            <option value="test2.html" >Histoire</option>
            <option value="test1.html" >Chimie</option>
            <option value="test2.html" >Anglais</option>
            <option value="test1.html" >Espagnol</option>
            <option value="test2.html" >Physique</option>
            <option value="test1.html" >Francais</option>
            <option value="test2.html" >Maths</option>
        </select>
     
    	<br/>
     
    <?php
    }
    ?>
    		<input type="hidden" value="<?php echo ($nombre + 1); ?>" name="nombre" />
            <input type="submit" value="ajouter" name="form" id="bouton" />
         </p>
    </form>
     
     </body>
    </html>

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    heu y a pas un problème dans la conception et dans l'idée principal de faire ???

    à partir du choix effectué dans la liste déroulante, afficher (juste en dessous de cette liste) le formulaire correspondant à ce choix.
    étant déjà dans un formulaire à la base si tu inclus un formulaire dans un formulaire y a un souci.

    Cette action doit être répétitive, c'est-à-dire, afficher autant de fois qu'on le souhaite la liste déroulante (sur la même page) tout en gardant affiché le formulaire correspondant au choix effectué dans cette liste
    sauf que dans ton exemple toutes tes liste on le même nom et utilise la même fonction javascript t'as pas l'impression que tout va se mélanger?
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    Faudrait voir pour éventuellement passer par de l'ajax
    J'essaies de proposer quelquechose plus tard (pas le temps la
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Billets dans le blog
    17
    Par défaut
    Et en enlevant le onChange sur le select, le comportement ne vous convient pas ?
    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
    <?php
    function getPost($param,$nb){
    	if(isset($_POST[$param])){
    		if(isset($_POST[$param][$nb])){
    			return $_POST[$param][$nb];
    		}
    	}
    	return null;
    }
    ?>
    <form name="formulaire" method="post" action="">   
                    <p>
                        <label for="pays"> Veuillez sélectionnner un item et remplir les zones de saisie </label><br />
    <?php
    $nombre = (isset($_POST['nombre'])) ? abs(intval($_POST['nombre'])) : 0;
    for ($i = $nombre; $i >= 0; $i--)
    {
     
     
    ?>
    	<select NAME="ListeUrl[<?php echo $i?>]" SIZE=1 >
    			<option <?php if(getPost('ListeUrl',$i)=='test1.html'):?>selected="selected"<?php endif;?> value="test1.html">Geographie</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test2.html'):?>selected="selected"<?php endif;?> value="test2.html">Histoire</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test3.html'):?>selected="selected"<?php endif;?> value="test3.html">Chimie</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test4.html'):?>selected="selected"<?php endif;?> value="test4.html">Anglais</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test5.html'):?>selected="selected"<?php endif;?> value="test5.html">Espagnol</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test6.html'):?>selected="selected"<?php endif;?> value="test6.html">Physique</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test7.html'):?>selected="selected"<?php endif;?> value="test7.html">Francais</option>
    			<option <?php if(getPost('ListeUrl',$i)=='test8.html'):?>selected="selected"<?php endif;?> value="test8.html">Maths</option>
    	</select>
    	<tr>
    			<td><input type="text" name="note1[<?php echo $i?>]" id="note1" size="10" maxlength="10" value="<?php echo getPost('note1',$i)?>"/><td>
    			<td><input type="text" name="note2[<?php echo $i?>]" id="note2" size="10" maxlength="10" value="<?php echo getPost('note2',$i)?>"/><td>
    			<td><input type="text" name="note3[<?php echo $i?>]" id="note3" size="10" maxlength="10" value="<?php echo getPost('note3',$i)?>"/><td>
    	</tr><br>
    <?php
    }
    ?>
    	<input type="hidden" value="<?php echo ($nombre + 1); ?>" name="nombre" />
    	<input type="submit" value="ajouter" name="form" id="bouton" />
    </p>
    </form>
    On selectionne dans le menu deroulant, on saisi dans chaque champ une valeur, puis on clique sur "ajouter" cela permet de saisir une seconde ligne en gardant la précédente entrée, ce n'est pas cela que vous souhaitez ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

Discussions similaires

  1. Comment créer 2 listes déroulantes de liens, liées ou non
    Par clement106 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/08/2009, 18h39
  2. liste déroulante avec lien invisible
    Par nicekiller dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2009, 00h48
  3. liste déroulante avec lien sur autre fichier
    Par orionis1 dans le forum Excel
    Réponses: 6
    Dernier message: 14/01/2008, 14h56
  4. Liste déroulante de liens hypertextes
    Par titelaurette dans le forum Excel
    Réponses: 5
    Dernier message: 26/07/2007, 16h41
  5. récupérer liste déroulante pour lien html
    Par Gary_Stoupy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/03/2007, 09h34

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