Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2011, 11h56   #1
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
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
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h11   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Tu trouveras la réponse dans la : http://php.developpez.com/sources/?p...ms#listesliees
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h48   #3
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
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 :
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
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h51   #4
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Tu pourrais préciser ce que signifie ça ne fonctionne pas ?
  • Message d'erreur
  • Comportement inattendu
  • ...
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h55   #5
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
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.
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h06   #6
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 258
Points : 7 258
Bonsoir,
Citation:
<select name="soc" style = 'width = "300px";' size="1" id="soc" onChange="javascript : modifcombo()">
Citation:
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+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h11   #7
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
J'ai changé mon code sur vos conseil mais sa ne fonctionne toujours pas :

Code :
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>
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h13   #8
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

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

Code :
1
2
3
 
<form name='priserdv' action='' method='post' > 
...
donc

Code :
1
2
3
4
5
6
7
8
 
$soc = NULL;
 
if (isset($_POST['soc'])){
  $soc = $_POST['soc'];
}
 
}
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h21   #9
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
Ah merci une erreur de vigilance de ma part, mais cela ne resoud malheureusement pas mon problème ...
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h26   #10
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Il faudrait peut être revoir toute cette partie :

Code :
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 :
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>
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h32   #11
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
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
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h38   #12
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
Autant pour moi c'était une erreur de frappe mais toujours le même problème
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 15h25   #13
Invité de passage
 
Femme
Développeur Web
Inscription : 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
Points : 3
Points : 3
Bon alors j'ai un peu avancé, voici mon code
Code :
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
poukette79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h10.


 
 
 
 
Partenaires

Hébergement Web