Forum Programmation.php Création de filtre en PHP avec Wordpress

Posté par . Licence CC by-sa
1
31
oct.
2014

Bonjour tout le monde,

Je tiens d'abord à préciser que je n'ai que très peu de connaissance en PHP.
Voici mon souci :

J'utilise Wordpress pour mon site, je voudrais un système de filtre sur une liste d'objet par exemple :

NOM MARQUE NUMERO DE SERIE DATE ACHAT

J'aimerai que quand je clique sur NOM que je puisse trier les objets par ordre alphabétique croissant/décroissant et ça pour chaque rubrique (Marque, date, etc..).

Je suppose qu'il faut que je varie ma requête SQL en fonction, mais comment implémenter un "bouton" sur NOM pour justement avoir comme sur les sites de ventes une interaction sur le nom de colonne qui permet les tris

Merci d'avance
N'hésitez pas à me poser des questions pour plus d'informations

Cordialement,

  • # PHP + HTML + SQL

    Posté par . Évalué à 2.

    integre les 3 elements à ta reflexion.

    1°) le navigateur affiche du code HTML/javascript
    ce code va dessiner un lien sur le titre de la colonne
    ce lien sera vers la meme page php, mais avec l'option orderby=namedesc (classe par nom decroissant)

    2°) la page php doit recuperer les options qu'on lui passe, et parmi les options elle recupere l'option orderby, et en fonction de cette option, va modifier la requete sql qui sera executée.

    3°) la requete sql est executée, le resultat est rendu, la page PHP calcul le rendu HTML (en modifiant le lien sur le nom pour proposer orderby=nameasc (classer par ordre de nom croissant) et le donne au navigateur

    l'etape 3 existe deja (partiellement) vu que tu vas chercher tes objets dans la base.
    il te reste donc à faire les etapes 2 et 3.

  • # du jQuery ?

    Posté par (page perso) . Évalué à 1. Dernière modification le 02/11/14 à 11:05.

    L'idéal, selon moi, pour ce genre de chose, se serait de passer par du jQuery si tu veux le faire de façon transparente. Il suffirait simplement d'intégrer un lien avec une icône et de faire appel à de l'ajax pour ta requête PHP. Après si tu es limite au niveau du code, passes par une requête PHP. Il y a déjà des fonctions prévues à cet effet dans WordPress, mais elles sont très limités selon moi. Ça devient très vite le bordel si tu veux faire une requête un peu complexe. Personnellement, j'ai abandonné WordPress, car dès que tu essaies de faire quelque chose de trop pointilleux, soit t'es bloqué ou soit ça bug dans tous les sens et tu dois te restreindre au bon vouloir des développeurs. Enfin, pour ton triage, ça reste quand même très simple, une requête PHP et avant ta boucle, tu fais une condition afin de détecter si l'utilisateur souhaite trier ou pas le résultat, donc :

    $query = null;
    if(isset($_GET['query']) { if(!empty(_GET['query']) { $query = $_GET['query']; } }

    Après tu peux faire différentes conditions en fonction de ce que contient la variable $query :

    if($query == 'bydate') {
       $args = array(.....);
    } else if ($query == 'byname') {
       $args = array(.....);
    } else {
       $args = array(....);
    }

    C'est très rudimentaire, mais c'est pour te donner une idée !

  • # Menu déroulant

    Posté par . Évalué à 1.

    Hello,

    Merci à vous deux, pour votre réponse. Je suis en train d'étudier ça en plus du php/html.

    Effectivement WordPress est très contraignant…

    J'avais une autre idée sinon, c'est d'avoir un bouton avec une liste déroulante ==> tri par : (date, ordre alphabétique, croissant etc…) et quand on choisit l'un ça refresh la page avec la nouvelle requête SQL.
    Pensez vous que c'est plus simple ?

    Cordialement,

    • [^] # Re: Menu déroulant

      Posté par (page perso) . Évalué à 1.

      Je ne pense pas que se soit plus simple, mais ça dépend ce que tu veux faire. Dans les deux, cas si tu utilises un formulaire pour trier le résultat, ça revient au même qu'insérer une glyphicon avec un petit lien. Au moment où l'utilisateur va cliquer sur le lien, la page va se rafraichir avec cette fois des informations exemple :

      Trier par date

      Tu pourras donc savoir que la page doit générer une requête par date.

    • [^] # Re: Menu déroulant

      Posté par . Évalué à 2.

      le bouton avec la liste deroulante n'est que la presentation des choix precedemments cités.

      tu voulais pouvoir cliquer en tete de la colonne, il faut mettre un lien dans chaque colonne avec les options qui disent au PHP quel tri tu veux faire.
      dans la liste deroulante, tu regroupes simplement les memes liens, et tu fais la meme chose qu'en tete de colonne.

      tu peux aussi faire les deux, l'utilisateur ayant le choix alors d'utiliser ta liste deroulante ou le titre de la colonne selon ce qu'il trouve le plus pratique/ergonomique.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.