Page de critères... URLRewriting

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Page de critères... URLRewriting

Re: Page de critères... URLRewriting

par macgawel » 26 mars 2010, 14:34

Que veux tu dire par : "Il va falloir faire de l'AJAX..."
En fait, j'étais parti sur de l'AJAX, mais en faisant le code PHP je me suis rendu compte que c'est faisable "élégamment" en PHP pur. Et j'ai oublié d'enlever la remarque ensuite :oops:

Ceci-dit, avec la méthode que je t'ai proposée, dès que tu cliques quelque part tu recharge une nouvelle page.
Je ne sais pas quels sont les temps d'accès, mais si je veux filtrer sur Guitare-1937-français, ça veut dire que je vais demander trois pages.
ca peut gêner un utilisateur. L'utilisation d'AJAX (voir de Javascript "simple") devrait permettre de fluidifier les opérations.
A la limite, en JS pur - et si tu n'as pas besoin d'une adresse différente à chaque fois - c'est encore le plus simple, vu qu'apparement tu affiches tout au départ (il suffit de cacher les éléments non souhaités).
Concernant la partie "Création de liens"... Doit on passer par un tableau ? Ne peut on pas directement rechercher dans la table avec un "SELECT DISTINCT" ?
Le tableau, c'était juste pour donner un exemple.
Effectivement, tu peux aussi boucler sur le résultat d'une requête SQL.

Re: Page de critères... URLRewriting

par Django » 26 mars 2010, 13:59

Bonjour Macgawel,
Merci de ta réponse.

Que veux tu dire par : "Il va falloir faire de l'AJAX..."

Concernant la partie "Création de liens"... Doit on passer par un tableau ? Ne peut on pas directement rechercher dans la table avec un "SELECT DISTINCT" ?

Forcer l'ordre pour le fichier ".htacces"... Je n'y avais pas pensé ! :)

Merci de ton aide... Je vais me mettre au travail...
Et peut être revenir vous voir si jamais ! :)

Django

Re: Page de critères... URLRewriting

par macgawel » 26 mars 2010, 12:19

Bonjour.

Il va falloir faire de l'AJAX, si tu veux vraiment qu'il y ait des modifications au clic sur un critère.

en restant sur du "pur" PHP :
En gros, il faut passer en paramètre de ta page les critères liste.php?instr=guitare&annee=1973&pays=france

Constitution de la page :
/*
 On part sur un cas simple, avec les instruments/années/pays stockés dans un tableau.
 Le script proposé est une ébauche, il faut sécuriser et tester les valeurs.
 Et on devrait pouvoir l'optimiser... D'ailleurs, ce n'est pas testé et il peut y avoir des erreurs
*/
// 1. récupération des paramètres éventuels
$instr = $_GET['instr'];
$annee = $_GET['annee'];
$pays = $_GET['pays'];

// 2. On construit les liens - exemple de boucle sur les instruments
foreach ($TableauDesInstruments as $instrument) {
   $lien = '<a href="liste.php?$instr='.$instrument;
   if (empty ($annee) == false) {
      $lien .= '&annee='.$annee;
   }
   if (empty ($pays) == false) {
      $lien .= '&pays='.$pays;
   }
   $lien .= '">'.$instrument.'</a>';
   $TableLiens[] = $lien;
}
// 3. On procède à l'affichage, suivant la mise en forme qu'on veut
echo '<ul>'
foreach ($TableLiens as $lien) {
   echo '<li>'.$lien.'</li>';
}
// 4. Génération de la liste, a priori via une requête SQL avec les WHERE qui vont bien...
Pour le fichier .htacces, le plus simple à mon avis est de "forcer" l'ordre :
Par défaut tu aurais quelque chose du genre : liste-tousinstruments-toutesannees-touspays, converti en liste?instr=tousinstruments&annee=toutesannees&pays=touspays
Et avec des paramètres : liste-guitare-toutesannees-france converti en liste?instr=guitare&annee=toutesannees&pays=france
Dans ce cas, il faut penser à modifier l'écriture des liens dans ton script - et gérer les cas par défaut quand tu sors la liste

Page de critères... URLRewriting

par Django » 24 mars 2010, 20:36

Bonjour à vous tous,

J'ai un petit problème à vous soumette...

J'ai un site sur un musicien, en URL Rewriting. (Pour les moteurs...)
J'aimerai concevoir une page "LISTE" qui permettrai de faire des recherches suivant des critères passés dans l'URL.
Ex. : Dans un premier temps ma page se nomme : "liste.php"

Dans cette page il y aurait un bloc de "critères".

Par Ex. :


-------------------------------------------------
| Instrument | Année | Pays |
|-------------------------------------------------|
| - Guitare | - 1937 | - France |
| - Violon | - 1938 | - Belgique |
| - Contrebasse | - 1939 | - Italie |
| - ... | - ... | - ... |
-------------------------------------------------
Tous ces critères correspondent à un champs de la table "Enregistrements"

Et à chaque fois que l'on cliquerai sur un critères on reload la page (liste.php) mais avec un critère de plus :


- liste.php on a tous les enregistrement
- liste_guitare.php Lorsque l'on clique sur "Guitare" on aurait tous les enregistrements "à la guitare".
- liste_guitare_1940.php Puis si l'on clique sur "1940" on aurait tous les enregistrement "à la guitare en 1940".
- liste_guitare_1940_france.php Et enfin si l'on clique sur "France" on aurait tous les enregistrement "à la guitare en 1940 en france".

Mais le soucis c'est que l'on peu cliquer sur les critères dans un ordre différent (d'abord l'année, puis le pays,...)
ex. : liste_1940_France_guitare.php

Comment puis-je faire cela ?
Sans savoir quel sera le critère choisi par le clique !?

Mais aussi comment dans le fichiers ".htacces" créer la règle ... !?

Merci de vos réponse et aide.

Django