Page 1 sur 1

Liste liées

Posté : 04 sept. 2009, 16:00
par sam01
Bonjour,

je tente d'effectuer deux liste liées dans un formulaire mais ça ne fonctionne pas...

Quand je clique sur un pays, j'aimerais avoir dans la deuxième liste, la iste des ville correspondant à ce pays.

		<p class="double">
			<label for="f1-pays" class="oblig">* Pays :
			<span class="info"></span></label>
			<select name="ad_pays" calss="font" onchange="document.forms['form01 type01'].submit();">
			<!--<SELECT name="ad_pays" class="font">-->
			<?php
				if (empty($ad_pays))
				{
					echo '<option value="-1" selected="selected">Choisir</option>';
				}
				else
				{
					echo '<option value="-1">Choisir</option>';
				}
				// on se connecte à MySQL 
				include ('connect.php');

				$sqla = sprintf("SELECT pays_".$lg." FROM flatforswap_pays ORDER BY pays_".$lg." ASC");
				
				

				$reqa = mysql_query($sqla) or die('Erreur SQL !<br>'.$sqla.'<br>'.mysql_error());
				while($dataa = mysql_fetch_assoc($reqa))
				{
					if ($ad_pays == $dataa['pays_'.$lg.''])
					{
						echo '<OPTION value="'.$dataa['pays_'.$lg.''].'" selected="selected">'.$dataa['pays_'.$lg.''].'</option>';
					}
					if ($ad_pays != $dataa['pays_'.$lg.''])
					{
						echo '<OPTION value="'.$dataa['pays_'.$lg.''].'">'.$dataa['pays_'.$lg.''].'</option>';
					}
				}
			?>

			</select>
		</p>
		
	
		<p class="double">
			<label for="f1-ville" class="oblig">* Ville :
			<span class="info"></span></label>
			<select name="ad_ville" class="font">
			<?php
			
			// requête de jointure entre la table pays et la table ville
				
			if (!empty($ad_ville) and !empty($ad_pays) )
			{	
				
					$sqlb = sprintf("SELECT vl.ville_".$lg." FROM flatforswap_ville vl INNER JOIN flatforswap_pays py ON py.id_pay = vl.id_pay	WHERE py.pays_".$lg." = ".$ad_pays." ORDER BY vl.ville_".$lg." ASC");
					
					$reqb = mysql_query($sqlb) or die('Erreur SQL !<br>'.$sqlb.'<br>'.mysql_error());
					while($datab = mysql_fetch_assoc($reqb))
					{
						if ($ad_ville == $datab['ville_'.$lg.''])
						{
							echo '<OPTION value="'.$datab['ville_'.$lg.''].'" selected="selected">'.$datab['ville_'.$lg.''].'</option>';
						}
						if ($ad_ville != $datab['ville_'.$lg.''])
						{
							echo '<OPTION value="'.$datab['ville_'.$lg.''].'">'.$datab['ville_'.$lg.''].'</option>';
						}
					}
			}
			else
			{
				echo '<option value="-1" selected="selected">Choisir</option>';
			}
				
			?>
			

			</select>
		</p>


Merci d'avance pour votre aide.

Re: Liste liées

Posté : 04 sept. 2009, 16:06
par thehawk
Salut à toi,

As-tu regarder ceci : faq-tutoriels/formulaires-listes-deroul ... t4562.html ?

Bye Hawk

Re: Liste liées

Posté : 04 sept. 2009, 16:35
par sam01
Ben justement je me suis inspiré de cela,
mais ça ne fonctionne :

je pense que c'est la ligne :

  <select name="ad_pays" class="font" onchange="document.forms['form01 type01'].submit();">

qui doit jouer le rôle de soumettre le formulaire...

mais ça n'a pas l'air de fonctionner.

Re: Liste liées

Posté : 04 sept. 2009, 16:40
par Babounet
Essaye en remplaçant "form01" par le nom de ton form et "type01" par le nom de ton champ (ad_pays).

Re: Liste liées

Posté : 04 sept. 2009, 21:45
par Ryle
As-tu une erreur javascript ?

As-tu bien donné un nom à ton formulaire (attribut name) ? Par ailleurs, je ne suis pas certain que le nom d'un formulaire puisse contenir d'espace (et quand bien même vaut mieux éviter les caractères spéciaux autre que "-" et "_" ;))
<form name="monFormulaire" ...>

<select name="ad_pays" class="font" onchange="document.forms['monFormulaire'].submit();">

Re: Liste liées

Posté : 04 sept. 2009, 23:26
par sam01
En effet ça marche mieux comme ça.

merci.