Bonjour à tous,

Je suis nouveau ici et j'espère trouver des indices pour résoudre un problème qui me rend fou depuis plusieurs jours ! Smiley biggol
Je vais essayer d'être le plus clair possible, on y va :

Je dois afficher une page "triée" avec jQuery. J'utilise jQuery 3.4.1.

J'ai une page PHP 'blog.php' qui possède un 'header.php', une 'sidebar.php', et un 'footer.php' tous les 3 appelés grâce à la fonction 'include' de PHP.

Quand je suis sur la page 'blog.php' qui contient plusieurs articles (qui eux-même possèdent leur classe correspondante en HTML, soit .categorie1 ou .categorie2), et que je clique sur le menu "Catégorie 1" de la sidebar, le tri fonctionne bien, à savoir que mes articles de catégorie 1 s'affichent et ceux de catégorie 2 disparaissent.
Jusqu'ici tout va bien.

Le souci est que lorsque je suis à l’intérieur d'un article, par exemple 'article1.php' (j'ai toujours mes 3 pages PHP appelées en 'include', donc la même sidebar avec les même liens), en cliquant dans la sidebar sur "Catégorie 1" donc comme au dessus, j'aimerai que ça me renvoie vers la page 'blog.php', mais déjà triée pour l'affichage des catégories.

Or c'est là que je bloque lamentablement. J'ai essayé avec

$( document ).ready(function()

et

$( window ).on( "load", function()

ainsi qu'avec plusieurs autres variantes, je n'y arrive pas.


// création de la fonction que j'aimerai appeler au chargement complet de la page
function showCat1() {
    $(".categorie1").show();
    $(".categorie2").hide(); 
}

// si on est sur la page blog
if (window.location == 'blog.php') {

// et qu'on clique sur une catégorie du menu de la sidebar
        $("#categorie1").on("click",function() {                
                $(".categorie1").show();         // ça affiche ces articles
                $(".categorie2").hide();          // ça masque ceux-là
                return false;
            });

    } else {
        // si l'utilisateur n'est pas sur la page blog.php
        $("#categorie1").on("click",function() {

                document.location.href="blog.php";      // redirection sur 'blog.php' ça marche

                $( window ).on( "load", function() {        // et là c'est le drame
                      alert( "Chargement de la page terminé" ); // pour test il y aura showCat1() ici
                });

                return false;
        });            
    }


Quand je réussis à avoir un retour, l'alert ou le console.log se produit toujours sur la page 'article1.php', juste avant la redirection. Smiley sweatdrop
Je ne pense pas être trop loin du résultat attendu, mais apparemment c'est un souci d'ordre dans le code (qui ne doit pas être fameux désolé).

Comment faire pour que lors du clic sur la catégorie choisie sur la sidebar, la redirection vers la page 'blog.php' se fasse, puis ensuite que le tri se fasse à la fin du chargement de la page ?

J'espère avoir été clair, merci à d'avance à ceux qui liront ce pavé Smiley cligne

EDIT : Résolu en changeant de méthode. Merci
Modifié par DevNoob (26 Jan 2020 - 23:23)
Meilleure solution