Gestion de tags via l'url (GET)
Posté : 31 juil. 2012, 14:10
Bonjour,
J'ai un petit problème qui me bloque, j'affiche une liste de tags, chaque fois je clique sur un tag il est ajouté aux autres via l'url en GET et je construit ma requête SQL en récupérant cette valeur.
Tout fonctionne bien.
La ou je coince c'est lorsque je clique sur un tag déjà présent dans la requête GET, je voudrais qu'il en soit supprimé.
J'ai ajouté les 3 premières variables pour l’exemple. Elles sont générées dynamiquement ailleurs dans le script.
J'ai pensé à dupliquer mon tableau tagRequest et supprimer le tag du tableau lorsqu'il est déjà présent mais problème lors de la boucle suivante... Le tag étant supprimé, tout est faussé
Bref, je n'arrive pas à résoudre ce problème.
Une piste ?
Merci.
J'ai un petit problème qui me bloque, j'affiche une liste de tags, chaque fois je clique sur un tag il est ajouté aux autres via l'url en GET et je construit ma requête SQL en récupérant cette valeur.
Tout fonctionne bien.
La ou je coince c'est lorsque je clique sur un tag déjà présent dans la requête GET, je voudrais qu'il en soit supprimé.
J'ai ajouté les 3 premières variables pour l’exemple. Elles sont générées dynamiquement ailleurs dans le script.
// exemple si on arrive sur la page avec cette requête ?tags=tag+tag-3+tag-4
$tags=array('tag','tag-1','tag-2','tag-3','tag-4'); // liste complète des tags issus de la BDD
$tagRequest=array('tag','tag-3','tag-4'); // tags envoyés par methode GET mis en array
$queryString='tag+tag-3+tag-4'; // la requête en elle même $_GET['tags']
foreach($tags as $tag){
$secondClass='';
if(in_array($tag,$tagRequest)){ // si le tag est dans la requête
$secondClass=' tagChecked'; // variable pour CSS
$string=$queryString; // c'est ici que je ne sais pas quoi faire, il faudrait supprimer le tag de la requête
}else{ // le tag n'est pas dans la requete
if(empty($queryString)){
$string=$tag;
}else{
$string=$queryString.'+'.$tag;
}
}
echo'<a class="tag'.$secondClass.' "href="index.php?tags='.$string.'">'.$tag.'</a>';
}
J'ai essayé avec preg_replace pour supprimer le tag mais le soucis c'est que si un tag en contient un autre, toutes les occurrences seront supprimées.J'ai pensé à dupliquer mon tableau tagRequest et supprimer le tag du tableau lorsqu'il est déjà présent mais problème lors de la boucle suivante... Le tag étant supprimé, tout est faussé
Bref, je n'arrive pas à résoudre ce problème.
Une piste ?
Merci.