Bonjour,
Je suis en train de faire un annuaire en PHP/MySQL. Mais j'ai un souci de listes déroulantes dépendantes. J'ai effectué des recherches sur internet et je tombe en gros toujours sur le même script. Dans ma première liste, j'ai bien mes différents choix. Mais le problème est qu'avec onchange, il recharge bien ma page et me met ma requête dans mon URL mais ne la sauvegarde pas dans mon script. Du coup, lors du rechargement, ma première liste redevient vierge avec les différents choix précédent et ma seconde est complètement vide car elle n'a aucune référence.
Je pense qu'avec mon script ce sera plus simple :
Code :
- $link = mysql_pconnect("localhost", "name", "password" ) or die ("Connexion impossible" );
- mysql_query("USE Exemple;" );
- // $query = "SELECT nom FROM societe";
- print "<form action=\"nouvelle personne.php\" method=\"post\">";
- //1ere liste
- $S1="<select name=\"listesociete\" onChange=\"this.form.action='$_SERVER[PHP_SELF]?_societe='+this.value;this.form.submit()\"><br>";
- $S1.="<option value=''></option>";
- // lors de la changement la page va etre reactualiser avec un nouveau parametre (la valeur de la liste)
- $req1="SELECT nom FROM societe ";
- $result1 = mysql_query($req1);
- while ($val1=mysql_fetch_array($result1))
- {
- //si on a deja choisi cette liste, i.e
- //si la valeur de la liste est dans l'url, on l'affecte a la liste par (selected)
- if(isset($_societe)) {
- if ($_societe==$val1[0]) $sel1="selected";
- echo "dans la boucle";
- }
- else {
- $sel1="";
- echo "pas dans la boucle";
- }
- //ajout de la ligne contenant le nom et le Texte à la liste
- $S1.="<option $sel1 value=\".$val1[0].\">$val1[0]</option><br>";
- }
- $S1.="</select><br>";
- print $S1; // affiche la liste deroulante
- //2eme liste
- $S2="<select name=\"listesite\"><br>";
- $S2.="<option value=''></option>";
- if(isset($_societe))
- {
- $req2="SELECT site FROM societe";
- $result2 = mysql_query($req2) or die ($req2.mysql_error());
- while ($val2=mysql_fetch_array($result2))
- {
- if(isset($_site )){
- if($_site==$val2[0]) $sel2="selected";
- }
- else $sel2="";
- $S2.="<option $sel2 value=$val2[0]>$val2[0]</option><br>";
- }
- }
- $S2.="</select><br>";
- print $S2;
- //print "y $listesociete";
- print ("<center><input type=\"submit\" value=\"envoyer\"></center>" );
- print "</form>";
- print "$sel1 et $sel2 $_site ";
- mysql_close($link);
- ?>
|
Comme vous pouvez le constater, si vous avez déjà fait des recherches la dessus, le script est très resemblant à ceux trouvés sur internet. Je dirais même que c'est du plaggia. Mais bon, je ne revendique pas ce script et j'aimerais comprendre pourquoi chez les autres apparament ca marche et pas chez moi.
Merci
GTH29
webographie : http://www.nexen.net/forum/read.ph [...] 70&t=49470
Message édité par gth29 le 24-02-2005 à 21:37:45