[Résolu !] liste déroulante dépendante (valeur non gardée)

liste déroulante dépendante (valeur non gardée) [Résolu !] - PHP - Programmation

Marsh Posté le 18-02-2005 à 11:11:04    

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 :
  1. $link = mysql_pconnect("localhost", "name", "password" ) or die ("Connexion impossible" );
  2. mysql_query("USE Exemple;" );
  3. // $query = "SELECT nom FROM societe";
  4. print "<form action=\"nouvelle personne.php\" method=\"post\">";
  5. //1ere liste
  6. $S1="<select name=\"listesociete\" onChange=\"this.form.action='$_SERVER[PHP_SELF]?_societe='+this.value;this.form.submit()\"><br>";
  7. $S1.="<option value=''></option>";
  8. // lors de la changement la page va etre reactualiser avec un nouveau parametre (la valeur de la liste)
  9. $req1="SELECT nom FROM societe ";
  10. $result1 = mysql_query($req1);
  11. while ($val1=mysql_fetch_array($result1))
  12. {
  13. //si on a deja choisi cette liste, i.e
  14. //si la valeur de la liste est dans l'url, on l'affecte a la liste par (selected)
  15. if(isset($_societe)) {
  16. if ($_societe==$val1[0]) $sel1="selected";
  17. echo "dans la boucle";
  18. }
  19. else {
  20. $sel1="";
  21. echo "pas dans la boucle";
  22. }
  23. //ajout de la ligne contenant le nom et le Texte à la liste
  24. $S1.="<option $sel1 value=\".$val1[0].\">$val1[0]</option><br>";
  25. }
  26. $S1.="</select><br>";
  27. print $S1; // affiche la liste deroulante
  28. //2eme liste
  29. $S2="<select name=\"listesite\"><br>";
  30. $S2.="<option value=''></option>";
  31. if(isset($_societe))
  32. {
  33. $req2="SELECT site FROM societe";
  34. $result2 = mysql_query($req2) or die ($req2.mysql_error());
  35. while ($val2=mysql_fetch_array($result2))
  36. {
  37. if(isset($_site )){
  38. if($_site==$val2[0]) $sel2="selected";
  39. }
  40. else $sel2="";
  41. $S2.="<option $sel2 value=$val2[0]>$val2[0]</option><br>";
  42. }
  43. }
  44. $S2.="</select><br>";
  45. print $S2;
  46. //print "y $listesociete";
  47. print ("<center><input type=\"submit\" value=\"envoyer\"></center>" );
  48. print "</form>";
  49. print "$sel1 et $sel2 $_site ";
  50. mysql_close($link);
  51. ?>


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
Reply

Marsh Posté le 18-02-2005 à 11:11:04   

Reply

Marsh Posté le 18-02-2005 à 11:25:58    

- utilise $_GET
- ou verifie ta config register_globals
 
PS: stp utilise le bouton C/C++ pour poster du code

Reply

Marsh Posté le 18-02-2005 à 11:56:29    

Ok j'essai un peu tout ca. Désolé pour le post avec mon script, je tacherai de faire attention le prochain coup.
 
Merci
 
GTH29

Reply

Marsh Posté le 18-02-2005 à 11:59:11    

Citation :

Désolé pour le post avec mon script, je tacherai de faire attention le prochain coup.


 
ben il est pas trop tard pour les mettre les balises [c pp], t'a le super-méga-magique bouton "EDITER" qui fait des miracles ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 18-02-2005 à 12:45:37    

On peut même te filer le lien directement :
 
http://forum.hardware.fr/hardwaref [...] formulaire
 
:D


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 24-02-2005 à 16:56:13    

Alors c'est mieux ???
 
Encore désolé

Reply

Marsh Posté le 24-02-2005 à 17:19:36    

je comprend pas trop le:
mysql_query("USE Exemple;" );
 
c'est pour sélectionner ta base ??? pkoi pas un mysql_select_db() ???
 
et aussi, "ça marche pas" c'est très bien comme explication, mais c'est nul !!! ;)
nan, sérieusement, t'a une erreur ? si oui PHP ? MySQL ?
T'a fait un print de tes requetes pour voir si elle sont bien formatées ?
En plus t'a pas indenté ton code, ce qui aide pas à le lire...
 
A tu regardé du coté de ce que t'a dis soju ? et pis le action de ton form est "post" donc c'est $_POST['ta_var'] pour  récupérer ;)
 
PS: désolé si le ton te parait méchant ou moqueur, ce n'est pas le but...  
mais tu viens tu fous un code que tu avous avoir piquer ailleurs, tu colle les 60 lignes comme ça et tu balance un "ça marche pas, expliquez-moi pourquoi" !!!
 
Ben c'est pas trop le genre de truc que j'aime voir...http://webxav.chez.tiscali.fr/gif/src1/al1-snip.gif


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 24-02-2005 à 21:37:13    

Tout d'abord, je suis encore désolé pour le post du script. Je viens de débuter en PHP/MySQL. Et pour ne pas faire le méchant à mon tour, j'ai précisé que le problème se situait au niveau de OnChange (Je l'admais, c'est pas du php).  
Pour ce qui concerne mysql_query c'est qu'avec easyphp, il me conseillait de le faire avec mysql_query(). J'ai essayé avec la méthode de Soju et en fait, j'ai trouvé avec son indication que je ne n'affectait jamais $societe. Donc, il ne pouvait pas rentré dans la boucle du if vu que $societe n'existait jamais.
Donc voilà.
Encore désolé

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed