PHP: if et else

moicjm -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

Pourriez vous me dire ce qui cloche dans ce petit script... parce que je n'arrive pas à le faire marcher...

J'ai des salles et dans les salles, j'ai des meubles/
L'idée, c'est d'afficher au chargement de la page le menu déroulant qui indique la salle, puis, lorsque cette salle est connue, on affiche le menu déroulant qui indique les meubles.

<?php
if (isset($_get['salle']))
{
$salle = $_get['salle];
?>
<form method="get" action="sommaire2.php?salle=<?php $salle2 ?>">
<SELECT NAME="salle2" style="width:200px;">
<OPTION>salon
<OPTION>cuisine
<OPTION>chambre
<OPTION>entree
</SELECT>
<input type="submit" value="Changer de salle"></form>
<br>
<form method="get" action="requete2.php?parnomdemeuble=<?php $parnomdemeuble ?>">
<SELECT NAME="parnomdemeuble" style="width:200px">
<?php mysql_connect("localhost", "root", "");
mysql_select_db("bdd");
$reponse = mysql_query("SELECT * FROM essai_meuble WHERE salle='$salle2'");
WHILE ($donnees = mysql_fetch_array($reponse) )
{
?> <OPTION> <?php echo $donnees['nommeuble'];
}
?></SELECT><input type="submit" value="Envoyer"></form><?php
}

else
{

?><p>Indiquez la salle du meuble que vous cherchez.</p>
<form method="get" action="sommaire2.php?salle=<?php $salle ?>">
<SELECT NAME="salle" style="width:200px;">
<OPTION>salon
<OPTION>cuisine
<OPTION>chambre
<OPTION>entree
</SELECT>
<input type="submit" value="Envoyer"></form>

<?php
}
?>

2 réponses

  1. giheller
     
    bonsoir,

    <?php
    if (isset($_get['salle']))
    {
    $salle = $_get['salle];
    ?>

    manque une quote dans l'affectation
    <?php
    if (isset($_get['salle']))
    {
    $salle = $_get['salle'];
    ?>
    0
    1. moicjm
       
      je vais voir tout cela. On a beau se relire, c dingue !!
      merci
      0
      1. moicjm > moicjm
         
        Bon.. ce n'est pas cela... Ca ne marche pas : lorsque j'appelle la page, cela affiche bien le menu déroulant #salles, mais apres, lorsque je choisis une salle, ca n'affiche pas le 2nd menu déroulant...

        Merci de votre aide
        0
      2. moicjm > moicjm
         
        nobody ?

        :(
        0
      3. Alain_42 Messages postés 5413 Statut Membre 904 > moicjm
         
        Bonsoir,

        utilises plutôt la méthode POST au lieu de GET

        il te manquait les balises fermantes </option> les value= dans <option

        je t'ai fais un petit script qui te fait les deux listes liées et le traitement sur la même page de script
        avec un seul form , plus qqs traces d'erreurs mysql

        il se nomme sommaire2.php

        si tu veux changer le nom, changes aussi action="....
        <html>
        <?php
        if (isset($_POST['salle'])){
        	$salle = $_POST['salle'];
        }else{
        	$salle="";
        }
        ?>
        
        <form name="form_test" method="POST" action="sommaire2.php">
        Selectionnez d'abord une salle:<br />
        <select name="salle" style="width:200px;">
        	<option value="salon" <?php if($salle=="salon"){echo "selected";} ?> >Salon</option>
        	<option value="cuisine" <?php if($salle=="cuisine"){echo "selected";} ?> >Cuisine</option>
        	<option value="chambre" <?php if($salle=="chambre"){echo "selected";} ?> >Chambre</option>
        	<option value="entree" <?php if($salle=="entree"){echo "selected";} ?> >Entr&eacute;e</option>
        </select>
        <br />
        <?php
        
        //si la premiere liste est envoyée on va afficher la seconde en fct du choix de la premiere
        	if (isset($_POST['salle'])){
        		echo "Selectionnez ensuite le meuble:<br />";
        ?>
        		<select name="parnomdemeuble" style="width:200px">
        <?php
        			mysql_connect("localhost", "root", "") or die("pb connexion au serveur ".mysql_error());
        			mysql_select_db("bdd") or die("pb de selection de la base ".mysql_error());
        			$reponse = mysql_query("SELECT * FROM essai_meuble WHERE salle='".$salle2."'")  or die("pb avec la requete ".mysql_error());
        			while ($donnees = mysql_fetch_array($reponse) ){
        ?> 
        			<option value="<?php echo $donnees['nommeuble'];?>"></option>
        <?php
        			}
        ?>
        		</select>
        <?php
        	}
        ?>
        <br />
        <input name="submit"type="submit" value="Envoyer">
        </form>
        <?php
        if (isset($_POST['salle']) && isset($_POST['parnomdemeuble']) ){
        	//la tu recuperes les deux choix par
        	$salle=$_POST['salle'];
        	$meuble=$_POST['parnomdemeuble'];
        	//et tu fais ton traitement
        }
        ?>
        </html>
        
        0
  2. giheller
     
    bonsoir
    ici
    <form method="get" action="sommaire2.php?salle=<?php $salle ?>">

    il faut évrire <?php echo $salle; ?>
    0