8797 sujets

Développement web côté serveur, CMS

Bonjour à tous voilà j'ai un souci au niveau de ma requete sql mon menu déroulant est vide et je ne comprend pas pourquoi. J'ai une base de donne avec une table destination composé de nom de pays (nompays) et de nom de ville (nomville) Je fais un premier formulaire creeant menu déroulant contenant tous les pays puis j'envoi ce formulaire sur la meme page dans laquel j'ai un autre form ou je demande le nom des villes where nompays=$_POST ['nompays']. Mon second menu deroulant reste toujours vide je ne comprend pas pourquoi j'ai besoin de votre aide.
<?php 
session_start ();


?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>traitrech</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />

</head>
<body>


<div class="div_principale">
<div class="banniereduhaut">


<img class="normal" src="Images/Banner3.gif"  />

</div>
</div>
<div class="rech_rapide">
<?php 
include("rech_rapide.php");
?>
</div>

<div class="connexion">

<?php 
include("connexion.php");

	

?>

</div>

<div>
<?php
include("menu.php");
include("base.php");

?>

</div>
<div class="contenu">
<h2 style="color:rgb(204,102,0)">Choisissez un pays <br/> <br/> <br/></h2>
<fieldset><legend><h3 style="color:rgb(255,153,0)">Choisissez un pays</h3></legend>
<?php
 
  echo '<form action="traitrech.php" method="post">';
  echo '<select size=1 name="nompays">'."\n"; 
  
 echo '<option value="1">Choisir un pays</option>'; 

  $ReqLog = mysql_query("SELECT DISTINCT(nompays) FROM destination   ORDER BY nompays ASC"); 
  while ($resultat = mysql_fetch_row($ReqLog)) { 
     
	echo '<option value='.$resultat[0].'>'.$resultat[0].'</option>'; 
  } 

  
  echo '<input type="submit"  name="valider1" value="valider" style="color:rgb(204,102,0);" /></form>'; 
mysql_close();
?> 
</fieldset><br/><br/>
<fieldset>
<?php
$nom=$_POST['nompays'];
echo '<form action="traitrech2.php" method="post">';
  echo '<select size=1 name="nomville">'."\n"; 
  
 echo '<option value="1">Choisir une ville</option>'; 

  $ReqLog = mysql_query("SELECT nomville FROM destination WHERE nompays='{$_POST['nompays']}'"); 
  while ($resultat = mysql_fetch_row($ReqLog)) { 
     
	echo '<option value='.$resultat[0].'>'.$resultat[0].'</option>'; 
  } 

  
  echo '<input type="submit"  name="valider1" value="valider" style="color:rgb(204,102,0);" /></form>'; ?>

</fieldset>
</div>

</body>
</html>

Modérateur
Salut anthonydb1,

N'as tu pas oublié la fin de balise select ? (</select>)

++
Salut,

le code généré est invalide (notamment les </select> manquants tout comme les guillemets de value="..."). Je t'invite fortement à utiliser http://validator.w3.org/

D'autre part l'affichage du second formulaire ne devrait pas se faire sans tester d'abord l'existence de $_POST['nompays'] et également que la requête a bien retourné un résultat (cf. mysql_num_rows).

En passant l'attribut title de l'élément LINK a une fonction particulière et devrait être supprimé dans ton cas ( la FAQ en parle ).
Modifié par Heyoan (13 Dec 2008 - 00:20)
Je ne connais pas cette syntaxe, avec les { }... Il ne faudrait pas plutôt concatener ?


$ReqLog = mysql_query("SELECT nomville FROM destination WHERE nompays='".$_POST['nompays'].'"');


?