Page 1 sur 1

recuperation du choix de la liste deroulante dans requete sq

Posté : 03 août 2007, 12:36
par johnben2
Bonjour,

J'ai une liste deroulante, et je voudrais lors de la selection d'un choix dans cette liste afficher (dans une autre page ou la meme // le plus simple ) afficher le resultat d'une requete sql.
voici mon tout petit bout de code pour la liste deroulante, je sais pas quoi mettre pour recuperer le choix et afficher le resultat de ma requete
J'ai vu pas mal de truc sur le forum mais etant vraiment debutant je n'arrive pas a adapter les codes.
Merci
<?


  echo '<select size=1 name="cat">'."\n";
  echo '<option value="-1">Choisir un groupe<option>'."\n";

  $sql ="select DISTINCT (`JOB TITLE`)  from SVG" ;
  $res=LanceRequete("SVG",$sql);    //fonction qui recupere mon resultat de requete pour la liste 

  while ($resultat = mysql_fetch_row($res)) {
    echo '<option value="'.$resultat[0].'">'.$resultat[0];
    echo "$option_selected";
    echo '</option>'."\n";
  }

  echo '</select>'."\n";



?>

Posté : 03 août 2007, 13:35
par d0m
tu peux en changeant d'élement dans la liste valider le formulaire dans laquelle elle se trouve et qui a pour action lorsqu'on le valide la page elle même.

Au chargement de la page :
- tu vérifies quel élement a été selectionné avant le rechargement dans la liste déroulante
- tu executes la requête qui correspond à cet élement
- et tu affiches dans la même page le résultat de la requête.

Par contre il te faut une correpondance entre les élements de la liste déroulante et les requetes sql que tu veux executer.

Posté : 03 août 2007, 14:00
par johnben2
Merci
vous n'auriez pas un exemple par hasard ?

Posté : 03 août 2007, 14:19
par d0m
le traitement en début de page :
//teste si un élement  a été selectionné dans la liste
if(isset($POST['cat'])){
  //on récupère la requête associée à la valeur de la liste
  $sql_requete = requete_associee($POST['cat']);
  /* partie executant la requete SQL 
      et rangeant le résultat dans le tableau $resultat_requete
  */
}

pour l'affichage de la liste :
echo '<select size=1 name="cat" onchange="this.form.submit();">'."\n"; 
  echo '<option value="-1">Choisir un groupe<option>'."\n"; 

  $sql ="select DISTINCT (`JOB TITLE`)  from SVG" ; 
  $res=LanceRequete("SVG",$sql);    //fonction qui recupere mon resultat de requete pour la liste  

  while ($resultat = mysql_fetch_row($res)) { 
    echo '<option value="'.$resultat[0].'">'.$resultat[0]; 
    echo "$option_selected"; 
    echo '</option>'."\n"; 
  } 

  echo '</select>'."\n"; 

  //affichage du résultat de la requête
  afficher_resultat($resultat_requete);
C'est pas du code à copier coller tel quel, j'ai mis des fonctions pour expliquer le fonctionnement.
A toi d'y placer le bon code pour faire ce qu'elle représente.