[AJAX] Filtrer comme Excel un tableau PHP
Bonjour,
Dans le sujet de mon stage en entreprise, je dois pouvoir appliqué des filtres comme sous excel sur le tableau de resultat d'une requete SQL.
Sachant que par exemple j'ai la table membre avec nom, prenom dedans.
J'ai deux listes déroulante : nom et prenom
Si je selectionne Dupont dans les nom et que j'ai les freres dupont : Jean et Gerard il ne doit y avoir plus que Jean et Gerard d'afficher dans les prenoms.
Et en dessous du formulaire de recherche les resultats s'affiche sans mettre a jour toute la page.
Jusqu'a maintenant j'ai fait quelque chose d'un peu flou et faux :mouarf:
J'ai une premiere page test.php qui contient le formulaire de "filtrage" a 7 Champs. Par AJAX dès que je modifiais une de mes listes J'envoyais tous les valeurs de chaque liste, par la méthode GET, a la page test2.php.
Suite a ca la page 2 se connect a la DB, recupere mon tableau de TOUTE les valeurs et pas seulement celle filtrer, et ensuite traite le filtrage a l'aide de 2 tableaux : Celui contenant toutes les données et celui contenant les données filtré.
Le filtrage ce fait de la maniere suivante (Bien sur ici j'ai appliqué a mon exemple de nom et prenom)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| if(isset($_GET['nom']) && $_GET['nom']!="" && $_GET['nom']!="Nom")
{
$tabFiltre = ajouterFiltre($tabDonnee,$tabFiltre, $_GET['nom'], 0);
}
if(isset($_GET['prenom']) && $_GET['prenom']!="" && $_GET['prenom']!="Prenom")
{
$tabFiltre = ajouterFiltre($tabDonnee,$tabFiltre, $_GET['prenom'], 1);
}
function ajouterFiltre($tabDonnee, $tabFiltre, $filtre, $colonne){
if(sizeof($tabFiltre)>0){
for($i = 0; $i < sizeof($tabFiltre); $i++)
if($tabFiltre[$i][$colonne] != $filtre) unset($tabFiltre[$i]);
$tabFiltre=array_values($tabFiltre);
}
else {
for($i = 0; $i < sizeof($tabDonnee); $i++)
{
if(($tabDonnee[$i][$colonne]==$filtre)==0) array_push($tabFiltre,$tabDonnee[$i]);
}
}
return $tabFiltre;
} |
Je creer ensuite un tableau contenant les resultats de ma requete et ce tableau je le renvoie pour le recevoir sur test.php grace a responsesText.
Seulement je pense que vous l'avez compris je ne peux pas recuperer de variable $tableau contenant ce tableau dans test.php et donc il m'est impossible de mettre a jour mes autres champs comme ici le champ prenom.
Mon but est donc de pouvoir avoir cette variable sans passé par les SESSIONS ou les COOKIES.
J'ai décidé de passé par AJAX pour ne pas avoir a changer de page et pouvoir executé en arriere plan les requetes.
Si vous avez d'autre informations n'hésiter pas !
Merci d'avance :)
Cordialement,
Neobrain