Php listes déroulantes

Fermé
neimad - 24 oct. 2007 à 16:59
 neimad - 25 oct. 2007 à 15:30
Bonjour, mon problème est le suivant :
comment dois je procéder pour, grâce à une liste déroulante, accéder dans mon cas aux différentes pages proposées par la liste, sans qu'il y'ait besoin d'appuyer sur un boutton qui valide la requête (comme le choix des pages sur skyblog). Faut-il utiliser un formulaire?
Merci d'avance
A voir également:

2 réponses

chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 1
24 oct. 2007 à 18:01
voici un exemple avec des specialistes par departement
Un 1er champ est affiché avec les departements,et un deuxieme champ apparait automatiquement avec une liste de specialistes
En esperant avoir éclairé un peu...
Essaie en changeant les données

<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
*  car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
    $choixbase = mysql_select_db($base, $connexion);
    $sql1 = "SELECT `id_departement`, `departement`".
    " FROM `departement`".
    " ORDER BY `id_departement`";
    $rech_depts = mysql_query($sql1);
    $code_dept = array();
    $dept = array();
    /* On active un compteur pour les departements */
	/*On gère l'affichage des depts ds le menu déroulant*/
    $nb_depts = 0;
    if($rech_depts != false)
    {
        while($ligne = mysql_fetch_assoc($rech_depts))
        {
            array_push($code_dept, $ligne['id_departement']);
            array_push($dept, $ligne['departement']);
            /* On incrémente de compteur */
            $nb_depts++;
        }
    }
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<fieldset style="border: 0px">

  <legend>  <h4>Choisissez un spécialiste dans votre département</h4>
</legend>
    <select name="departement" id="departement" onchange="document.forms['chgdept'].submit();">
      <option value="-1">- - - Choisissez un departement - - -</option>
      <?php
    for($i = 0; $i < $nb_depts; $i++)
    {
?>
      <option value="<?php echo($code_dept[$i]); ?>"<?php echo((isset($idr) && $idr == $code_dept[$i])?" selected=\"selected\"":null); ?>><?php echo($dept[$i]); ?></option>
      <?php
    }
    ?>

    </select>
	
    <?php
    mysql_free_result($rech_depts);
    /* On commence par vérifier si on a envoyé un numéro de departement et le cas échéant s'il est différent de -1 */
    if(isset($idr) && $idr != -1)
    {
        /* Création de la requête pour avoir les specialistes de ce departement */
        $sql2 = "SELECT `id_specialiste`, `specialiste`,`ville`,`detail`".
        " FROM `specialiste`".
        " WHERE `id_departement` = ". $idr ."".
        " ORDER BY `ville`;";
        if($connexion != false)
        {
            $rech_spec = mysql_query($sql2, $connexion);
            /* Un petit compteur pour les specialistes */
            $nd = 0;
            /* On crée trois tableaux pour les numéros et les noms des specialistes */
            $code_spec = array();
            $nom_spec = array();
			$ville_spec = array();
			$det_spec = array();
            /* On va mettre les numéros et noms des specialistes dans les trois tableaux */
            while($ligne_spec = mysql_fetch_assoc($rech_spec))
            {
                array_push($code_spec, $ligne_spec['id_specialiste']);
                array_push($nom_spec, $ligne_spec['specialiste']);
				array_push($ville_spec, $ligne_spec['ville']);
				array_push($det_spec, $ligne_spec['detail']);
                $nd++;
            }
			 /* Maintenant on peut construire la liste déroulante */
            ?>
    <select name="specialiste" id="specialiste" >
      <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
      <option value="<?php echo($nom_spec[$d]); ?>"<?php echo((isset($spec_selectionne) && $spec_selectionne == $code_spec[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_spec[$d]." "); ?>
      <br>
      <br />
	  <?php echo ($det_spec[$d]." ".à." "); ?>
	   <br>
      <br />
      <?php echo($ville_spec[$d]); ?></option>
      <?php
            }
	?>
    </select>
    <?php
}
        /* Un petit coup de balai */
        mysql_free_result($rech_spec);
		}
		?>
  
    <input type="submit" name="ok" id="ok" value="Envoyer" />
  <br />
<?php
if(isset($_POST['ok']) && isset($_POST['specialiste']) && $_POST['specialiste'] != "")
{
    $spec_selectionne =$_POST['specialiste'];
	
?>
<br />Votre choix<br /> <b><?php echo($spec_selectionne); ?></b>
<?php 
}
?>

<?php

$query  = "SELECT specialiste, adresse, code, ville, detail, tel FROM specialiste WHERE specialiste='$spec_selectionne' order by ville asc";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
   echo "<br>"."<strong>{$row['detail']}</strong>"." " ."<br>{$row['adresse']}"." "."{$row['code']}"." "."{$row['ville']}"." "." "."<br><b>{$row['tel']}"."<br></b> ";
		 
} 
/* Terminé, on ferme la connexion */
    mysql_close($connexion);
}
else
{
    /* Si on arrive là, c'est pas bon signe, il faut vérifier les 
    * paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
0
Désolé mais ton exemple ne m'aide pas parceque tu utilise quand même <input type="submit" name="ok" id="ok" value="Envoyer" /> et moi justement je veux m'en passer. Merci quand même et si quelqu'un peut m'aider je suis preneur^^
0