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 :

PHP liste déroulante dynamique


Sujet :

Langage PHP

  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut PHP liste déroulante dynamique
    Bonjour,

    Je vous explique mon problème, j'ai deux listes déroulantes. Ma deuxième liste dépendant du résultat de la première.

    Quelqu'un pourrait-il m'aider à concevoir un script me permettant de réaliser celà sans recharger ma page PHP.

    Je précise aussi que les résultats de requete sont des select from d'un interbase.

    En espérant avoir été claire...

    Merci par avance

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour,

    Tu trouveras la réponse dans la : http://php.developpez.com/sources/?p...ms#listesliees

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut
    J'ai bien regarder le lien et essayer de l'adapter à mon code mais sa ne fonctionne pas alors il doit y avoir un problème que je n'arrive pas à voir.

    Voici mon 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
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script language="javascript">
    function modifcombo(){
    document.location.replace("index.php?soc=" + document.form1.selectlieu.value );
    document.form1.selectlieu.value = $soc;
    }
    		</script>
    <?php
    $hote = '192.168.1.30:/var/lib/firebird/dbase/infocob.fdb';
      				$utilisateur = 'SYSDBA'; 
     				$passe ='masterkey'; 
      				$db = ibase_connect($hote, $utilisateur, $passe);
    				$self = "index.php";
      ?>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>Prise de rendez-vous</title>
    </head>
     
    <body>
    <?php
    if (isset($_GET['soc'])){
      $soc = $_GET['doc'];
    } else {
      $soc = NULL;
    }
    print ">>>>" . $soc ."<<< <br> <br> <br>";
    ?>
    	 <form name='priserdv' action='' method='post' >"; 
    			<table width='618' >
    				<tr>
                    <td width="274" >  Société : </td>
                    <td width="10"></td>
    					<td width="327" style='width: 179px'><select name="soc" style = 'width = "300px";' size="1" id="soc" onChange="javascript : modifcombo()">
    					  <?php 
    					$requete1 = 'SELECT C_NOM FROM CONTACTFICHE ORDER BY C_NOM';   
     				 $resultat = ibase_query($db, $requete1); 
    				  while ($row = ibase_fetch_object($resultat)) {
    					echo "<option value=\"$row->C_NOM\">$row->C_NOM</option>";
    				  }
     
     				 ?>
     
    				    </select></td>
     
    			  </tr>
    				<tr>
    					<td >Interlocuteur :</td>
    					<td style='width: 0px'>  </td>
    					<td style='width: 179px'><select name="interlocuteur" style = 'width = "300px";' size="1" id="famille">
    					  <?php 
    					  if(isset($_POST["idsoc"]))
    				$requete2 = 'SELECT I_NOM FROM INTERLOCUTEURFICHE, CONTACTFICHE where CONTACTFICHE.C_CODE = INTERLOCUTEURFICHE.I_CODECONTACT and CONTACTFICHE.C_NOM = '.$row->C_NOM;  
     				$resultat = ibase_query($db, $requete2); 
    				  while ($row = ibase_fetch_object($resultat)) {
    					echo "<option value=\"$row->I_NOM\">$row->I_NOM</option>";
        }
        ?>
        </select>
    				    </select></td>
    		    </tr>
                    <tr>
    					<td > Date du rendez-vous : </td>
    					<td style='width: 0px'>&nbsp; </td>
    					<td style='width: 179px'><input type='text' name='date' style='width: 300px; height:30px' /></td>
    			  </tr>
    				<tr>
    						<td > Détails : </td>
    						<td style='width: 0px'>&nbsp; </td>
    						<td style='width: 300px'><textarea rows='5' name='details' style='width: 300px'></textarea></td>
    			  </tr>
    					<td>&nbsp;</td>
    					<td style='width: 0px'>&nbsp;</td>
    					<td style='width: 300px'><input type='reset' value='Annuler'/>
    					  <input type='submit' value='Valider' /></td>
    			</table>
    <p>&nbsp;</p>
    			<p>&nbsp;</p>
     
                   </form>";
    </body>
    </html>
    En esperant que quelqu'un voit se qui ne fonctionne pas

  4. #4
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Tu pourrais préciser ce que signifie ça ne fonctionne pas ?
    • Message d'erreur
    • Comportement inattendu
    • ...

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut
    Ah oui pardon, quand je dis que sa ne fonctionne pas c'est que ma deuxième liste déroulante est toujours vide...

    Elle n'affiche aucun résultat en fonction de la liste précédente.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,
    <select name="soc" style = 'width = "300px";' size="1" id="soc" onChange="javascript : modifcombo()">
    if(isset($_POST["idsoc"]))
    $requete2 = 'SELECT I_NOM FROM INTERLOCUTEURFICHE, CONTACTFICHE where CONTACTFICHE.C_CODE = INTERLOCUTEURFICHE.I_CODECONTACT and CONTACTFICHE.C_NOM = '.$row->C_NOM;
    1- tu n'as pas d'élément avec le name "idsoc" dans ton formulaire.
    2- onchange attend déjà des instructions javascript, vire le motif "javascript :"

    A+.

  7. #7
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut
    J'ai changé mon code sur vos conseil mais sa ne fonctionne toujours 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script language="javascript">
    function modifcombo(){
    document.location.replace("index.php?soc=" + document.form1.selectlieu.value );
    document.form1.selectlieu.value = $soc;
    }
    		</script>
    <?php
    $hote = '192.168.1.30:/var/lib/firebird/dbase/infocob.fdb';
      				$utilisateur = 'SYSDBA'; 
     				$passe ='masterkey'; 
      				$db = ibase_connect($hote, $utilisateur, $passe);
    				$self = "index.php";
      ?>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>Prise de rendez-vous</title>
    </head>
     
    <body>
    <?php
    if (isset($_GET['soc'])){
      $soc = $_GET['soc'];
    } else {
      $soc = NULL;
    }
    print ">>>>" . $soc ."<<< <br> <br> <br>";
    ?>
    	 <form name='priserdv' action='' method='post' > 
    			<table width='618' >
    				<tr>
                    <td width="274" >  Société : </td>
                    <td width="10"></td>
    					<td width="327" style='width: 179px'><select name="soc" style = 'width = "300px";' size="1" id="soc" onChange="modifcombo()">
    					  <?php 
    					$requete1 = 'SELECT C_NOM FROM CONTACTFICHE ORDER BY C_NOM';   
     				 $resultat = ibase_query($db, $requete1); 
    				  while ($row = ibase_fetch_object($resultat)) {
    					  $idsoc = $row->C_NOM;
     
    					echo "<option value=\"$idsoc\">$row->C_NOM</option>";
    					 if ($id_soc == $soc) {
    				   print " selected";
    					 }
    				  }
     				 ?>
     
    				    </select></td>
     
    			  </tr>
    				<tr>
    					<td >Interlocuteur :</td>
    					<td style='width: 0px'>  </td>
    					<td style='width: 179px'><select name="interlocuteur" style = 'width = "300px";' size="1" id="famille">
    					  <?php 
     
    				$requete2 = 'SELECT I_NOM FROM INTERLOCUTEURFICHE, CONTACTFICHE where CONTACTFICHE.C_CODE = INTERLOCUTEURFICHE.I_CODECONTACT and CONTACTFICHE.C_NOM = '.$soc;  
     				$resultat = ibase_query($db, $requete2); 
    				  while ($row = ibase_fetch_object($resultat)) {
    					echo "<option value=\"$row->I_NOM\">$row->I_NOM</option>";
        }
        ?>
        </select>
    				    </select></td>
     
    		    </tr>
                    <tr>
    					<td > Date du rendez-vous : </td>
    					<td style='width: 0px'>&nbsp; </td>
    					<td style='width: 179px'><input type='text' name='date' style='width: 300px; height:30px' /></td>
    			  </tr>
    				<tr>
    						<td > Détails : </td>
    						<td style='width: 0px'>&nbsp; </td>
    						<td style='width: 300px'><textarea rows='5' name='details' style='width: 300px'></textarea></td>
    			  </tr>
    					<td>&nbsp;</td>
    					<td style='width: 0px'>&nbsp;</td>
    					<td style='width: 300px'><input type='reset' value='Annuler'/>
    					  <input type='submit' value='Valider' /></td>
    			</table>
    <p>&nbsp;</p>
    			<p>&nbsp;</p>
     
                   </form>";
    </body>
    </html>

  8. #8
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    $_GET pour un form avec une methode="get"
    $_POST pour un form avec une methode="post"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <form name='priserdv' action='' method='post' > 
    ...
    donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $soc = NULL;
     
    if (isset($_POST['soc'])){
      $soc = $_POST['soc'];
    }
     
    }

  9. #9
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut
    Ah merci une erreur de vigilance de ma part, mais cela ne resoud malheureusement pas mon problème ...

  10. #10
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Il faudrait peut être revoir toute cette partie :

    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
    <select name="soc" style = 'width = "300px";' size="1" id="soc" onChange="modifcombo()">
    					  <?php 
    					$requete1 = 'SELECT C_NOM FROM CONTACTFICHE ORDER BY C_NOM';   
     				 $resultat = ibase_query($db, $requete1); 
    				  while ($row = ibase_fetch_object($resultat)) {
    					  $idsoc = $row->C_NOM;
     
    					echo "<option value=\"$idsoc\">$row->C_NOM</option>";
    					 if ($id_soc == $soc) {
    				   print " selected";
    					 }
    				  }
     				 ?>
     
    				    </select>
    Récuperer l'id de ta table pour la mettre en value et la comparer avec ton $_POST, et ensuite ton selected, il faut le mettre dans la balise option

    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
    <select name="soc" style = 'width = "300px";' size="1" id="soc" onChange="modifcombo()">
    					  <?php 
    					$selected = '';
     
    $requete1 = 'SELECT ID ?, C_NOM FROM CONTACTFICHE ORDER BY C_NOM';   
     				 $resultat = ibase_query($db, $requete1); 
    				  while ($row = ibase_fetch_object($resultat)) {
    					  $idsoc = $row->ID;
    					if ($id_soc == $soc) {
    						$selected = 'selected="selected"';
    					}
    					echo "<option value=\"$idsoc\" ".$selected.">".$row->C_NOM."</option>";
     
    				  }
     				 ?>
     
    				    </select>

  11. #11
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut
    J'ai essayé ton bout de code mais seule cette liste s'affiche désormais et je n'ai que la moitié de mes sociétés dans la liste

  12. #12
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut
    Autant pour moi c'était une erreur de frappe mais toujours le même problème

  13. #13
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 41
    Par défaut
    Bon alors j'ai un peu avancé, voici mon 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
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>Prise de rendez-vous</title>
    <head>
    <script language="javascript">
    	function modifcombo(){
    		document.location.replace("index.php?soc=" + document.priserdv.soc.value );
    		//document.priserdv.soc.value = $soc;
    	}
    </script>
    <?php
    	$hote = '192.168.1.30:/var/lib/firebird/dbase/infocob.fdb';
    	$utilisateur = 'SYSDBA'; 
    	$passe ='masterkey'; 
    	$db = ibase_connect($hote, $utilisateur, $passe);
    	$self = "index.php";
        $soc = $_post['soc'];
    ?>
     
     
    </head>
     
    <body>
         <form name='priserdv' action='' method='post' > 
                <table width='687' >
                    <tr>
                    	<td width="282" >  Société : </td>
                    	<td width="10"></td>
                        <td width="379" style='width: 179px'>
                            <select name="soc" size="1" onChange="modifcombo()">
                                <?php 
    						        $selected = '';
     								$requete1 = 'SELECT C_CODE, C_NOM FROM CONTACTFICHE ORDER BY C_NOM';   
     				 				$resultat = ibase_query($db, $requete1); 
    				 				while ($row = ibase_fetch_object($resultat)) {
    					 				 $id_soc = $row->C_CODE;
    									if ($id_soc == $soc) {
    										$selected = 'selected="selected"';
    									}
    									echo "<option value=\"$id_soc\" ".$selected.">$row->C_NOM</option>";
     
    				  				}
     
     							 ?>
                            </select>
                        </td>
                  	</tr>
                  	<tr>
                        <td >Interlocuteur :</td>
                        <td style='width: 0px'> <?php $soc;?> </td>
                        <td style='width: 179px'>
                        	<select name="interlocuteur" style = 'width = "300px";' size="1">
    						  <?php 
     
    						  	$requete2 = 'SELECT I_NOM FROM INTERLOCUTEURFICHE where CONTACTFICHE.C_CODE  = '.$soc;  
     
                        		$resultat = ibase_query($db, $requete2); 
                          		while ($row = ibase_fetch_object($resultat)) 
    							{
                            		echo "<option value=\"$row->I_NOM\">$row->I_NOM</option>";
           						}
           					 ?>
                        	</select>
                            <?php echo $requete2; ?>
                        </td>   
               		</tr>
                    <tr>
                        <td > Date du rendez-vous : </td>
                        <td style='width: 0px'>&nbsp; </td>
                        <td style='width: 179px'>
                        	<input type='text' name='date' style='width: 300px; height:30px' />
                        </td>
                  	</tr>
                    <tr>
                            <td > Détails : </td>
                            <td style='width: 0px'>&nbsp; </td>
                            <td style='width: 300px'>
                            	<textarea rows='5' name='details' style='width: 300px'></textarea>
                            </td>
                 	</tr>
                        <td>&nbsp;</td>
                        <td style='width: 0px'>&nbsp;</td>
                        <td style='width: 300px'>
                        	<input type='reset' value='Annuler'/>
                            <input type='submit' value='Valider' />
                        </td>
                </table>
    <p>&nbsp;</p>
                <p>&nbsp;</p>
     
            </form>
    </body>
    </html>
    Lorsque que je choisis une société, son id apparait bien dans son url :

    http://127.0.0.1/telepro/index.php?soc=2930YOKC par exemple

    Ensuite j'ai choisis d'afficher ma requete sql pour voir si je récupérais bien cette id.
    Le problème est bien là je ne récupére pas cette id

    et la premiére liste se fige toujours sur le premier client sociétaire

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

Discussions similaires

  1. [PHP-JS] Listes déroulantes dynamiques
    Par Sarrus dans le forum Langage
    Réponses: 4
    Dernier message: 22/01/2007, 13h33
  2. [PHP-JS] Listes déroulantes dynamiques - suite -
    Par Gloubie dans le forum Langage
    Réponses: 5
    Dernier message: 16/11/2006, 14h47
  3. [PHP-JS] Deux listes déroulantes dynamiques
    Par zana74 dans le forum Langage
    Réponses: 9
    Dernier message: 29/08/2006, 13h36
  4. [SQL] Liste déroulante dynamique PHP only
    Par gforce dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 11/05/2006, 22h30
  5. [PHP-JS] Création de liste déroulante dynamique
    Par eeckhout dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2006, 14h41

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