|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 6 ![]() |
Bonjour bonjour!
je bloque et ne trouve pas de solution sur le web (formulerais-je mal mon problème ???). j'vais tenter d'être pertinent ! alors ! hm je donne un formulaire au visiteur pour faire une recherche sur le site... une fois validé le formulaire, il arrive sur une page avec le listing en fonction de ses réponses ( jusque là tout va bien) mais je voudrais rajouter une liste déroulante qui offre au visiteur le choix de re-trier cette requête... j'ai donc en html la liste déroulante : Code :
et je mets une variable pour le order by dans mon sql : Code :
$result = mysql_query("$query order by ".$_REQUEST["tri"]." ASC;"); et enfin pour info voila ce que donne la requête du formulaire : Code :
1- lorsque j'effectue le tri ma requête ne prend pas en considération le résultat du formulaire / c'est comme une nouvelle requête. -> je voudrais réussir à reprendre les informations qui a actuellement sur la page. (superposer des requêtes ???) 2- comme vous pouvais le voir dans le HTML je suis obligé de passé par un bouton submit est-il possible de directement cliquer sur le critère pour que le résultat s'affiche ??? merci d'avance pour l'attention que vous y aurez porté |
||||
|
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Damien Inscription : juillet 2009 Messages : 50 ![]() |
Rapidement, j'ai pas vraiment tout approfondi sur ta question mais je soulève juste un point primordial :
Citation:
htmlspecialchars($_REQUEST["tri"]); par exemple.. Citation:
Et enfin, j'suis pas sûr de tout saisir.. Ta table ne contient donc pas de colonne titrée "prix", mais tu essaie de faire un ORDER BY sur "prix" tout de même ? Idem pour "surface", "DPE"... On peut connaitre la conception de ta table ? Sinon je dirais, à première vue pour le prix par exemple, de faire un ORDER BY pxmin |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 6 ![]() |
bonjour,
merci pr le java j'ai trouvé ma solution pour info, il faut mettre : "onchange="this.form.submit();" dans le select style et on peut supprimer le bouton submit ---- Sinon pour ma table elle fonctionne et elle a bien une colonne titré prix, pxmin et pxmax l'utilise notamment. ---- Sinon quelqu'un aurait une idée pour mon problème de base :/ à savoir récupérer les infos de la première requête (le formulaire) pour que la seconde (le tri) puisse les exploiter ? merci d'avance! |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 586 ![]() |
Lorsque tu traites le premier formulaire de recherche et que tu crées la première requête, tu crées une variable de session qui contient cette requête sur la page de résultat (je suppose que c'est la que tu veux mettre ta liste déroulante, donc un second formulaire) et tu testes l'existence de $_POST['tri'] qui si il existe tu concatène à ta première requête...je sais pas si c'est assez clair ?
__________________
Développeur informatique contrarié... |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Jérémy Étudiant Inscription : octobre 2009 Messages : 236 ![]() |
2 solutions en tête, la première est de traiter ton tableau retourné avec les fonction php(lien).
La seconde vise à récupérer la première chaine de requête et d'y concaténer le "order by" et de la re-exécuter, à mon avis cette solution offre de meilleures perf. mais nécessite un peu plus de travail. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com