Question

Le titre risque d’être un peu déroutant, alors laissez-moi vous expliquer.

J'ai un site Web doté d'un panneau latéral contenant des informations sur l'utilisateur, les actions qu'il peut effectuer, etc. Lorsque l'utilisateur n'est pas connecté, ce panneau latéral devient la zone de connexion ou d'enregistrement.

Le code pour cela est:

<?php
if($user->loggedIn)
{
?>
<!-- side-panel for logged in users here -->
<?php
}
else
{
?>
<!-- login/registration etc -->
<?php
}
?>

Ce que je veux faire est de charger à nouveau cet extrait de code lorsque l'utilisateur clique sur l'ouverture de session avec AJAX, et d'utiliser un effet jQuery (probablement un fondu) qui effectue en douceur la transition du panneau latéral de l'ouverture de session vers les utilisateurs uniquement brillants. panneau.

Je sais que je pourrais le faire si je mettais ce code dans un autre fichier et le chargeais via AJAX dans le div du panneau latéral ... mais je préférerais ne pas créer de fichier séparé pour le panneau latéral uniquement. Est-ce possible?

Était-ce utile?

La solution

Vous pouvez charger la page avec une requête AJAX, puis supprimer les données autres que le panneau latéral, mais à quoi servirait-il? Votre meilleure option serait simplement de séparer le panneau latéral dans son propre fichier.

Oh, et cela serait également considéré comme la bonne façon de procéder. Vous pouvez donc modifier la barre latérale sans modifier les pages sur lesquelles il apparaît.

Autres conseils

Si je comprends bien ce dont vous avez besoin, vous pouvez essayer de cette façon:

$.ajax({
    type: "GET",
    url: "url", // replace 'url' with your url
    cache: false,
    success: function(data){
        alert($(data).find('#sidebar').html());
    }
});

Peut-être que cela fonctionnera avec $ .load () ou $ .get (), ne sais pas.

Pourquoi vous opposez-vous à conserver le panneau latéral dans son propre fichier? Garde les choses plus modulaires et organisées.

Si vous êtes vraiment opposé à la conservation du contenu dans un fichier, vous pouvez le placer dans une base de données et l'interroger chaque fois que l'appel AJAX est passé.

Pourriez-vous passer un paramètre de chaîne de requête à la page, puis sur cette base, effectuer uniquement un rendu partiel (barre latérale uniquement) de la page? Ensuite, utilisez simplement votre méthode jquery / ajax normale et incluez le paramètre de chaîne de requête.

$.ajax(function(){
    url: MyPage.php?sidebar_only=true
    ect...
})

En supposant que vous obteniez les données de l'utilisateur via un autre appel, vous pouvez utiliser deux div. La div contenant le code HTML pour le panneau utilisateur commence masquée. Une fois la connexion établie, masquez la div de connexion et affichez la div du panneau utilisateur. En utilisant les données de la connexion AJAX, renseignez les informations personnalisées du panneau. Je suppose que l'appel de connexion AJAX renverra les informations nécessaires pour renseigner le nom d'utilisateur et indiquer ce qu'il peut faire. Cela vous évite d'avoir à utiliser le code HTML pour tout le panneau de l'utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top