Frage

Titel ist vielleicht etwas verwirrend sein, so lassen Sie mich erklären.

ich eine Website, die eine Seitenplatte aufweist, die Informationen über den Benutzer enthält, die Dinge der Benutzer tun kann, usw. Wenn der Benutzer nicht angemeldet ist, diese Seitenplatte wird der Bereich für die Anmeldung oder Registrierung.

Der Code hierfür lautet:

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

Was ich tun möchte, ist diesen Code-Snippet wieder zu laden, wenn der Benutzer klickt mit AJAX anmelden und einen jQuery-Effekt verwenden (wahrscheinlich verblasst), die sanft die Seitenplatte Übergang von Login / Anmeldung zu dem glänzenden Benutzer-only macht Panel.

Ich weiß, ich könnte dies tun, wenn ich diesen Code in einer anderen Datei setzen, und lud sie durch AJAX in die div für die Seitenplatte ... aber ich würde lieber nicht eine separate Datei für die Seitenplatte nur machen. Ist das möglich?

War es hilfreich?

Lösung

Sie können die Seite mit AJAX-Request laden und dann die Daten Streifen aus anderen als der Seitenwand, aber was ist der Punkt wäre? Ihre beste Möglichkeit wäre, einfach die Seitenabdeckung in eine eigene Datei zu trennen.

Oh, und das wäre auch der richtige Weg, es zu tun in Betracht gezogen werden, so dass Sie die Seitenleiste bearbeiten können die Seiten ohne Bearbeitung kommt es auf.

Andere Tipps

Wenn ich corectly verstehen, was Sie neey, können Sie auf diese Weise versuchen:

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

Vielleicht mit $ .load () oder $ .get (), weiß nich funktioniert.

Warum sind Sie gegen die Seitenwand in einer eigenen Datei zu halten? Hält die Dinge mehr modular und organisiert.

Wenn Sie wirklich hält die Inhalte in einer Datei entgegengesetzt sind, können Sie den Inhalt in einer Datenbank und Abfrage für sie setzen könnten, wann immer der AJAX-Aufruf gemacht wird.

Könnten Sie einen Abfrage-String-Parameter an der Seite übergeben und dann auf der Grundlage, dass nur einen Teil tun render (Sidebar nur) auf der Seite? Dann nutzen Sie einfach Ihre normale Jquery / Ajax-Methode mit dem Query-String-Parameter um.

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

Unter der Annahme, dass Sie die eigentlichen Nutzdaten durch einen anderen Anruf bekommen, könnten Sie zwei Divs verwenden. Die div den HTML-Code für den Benutzer-Panel enthalten beginnt versteckt. Wenn Sie eine erfolgreiche Anmeldung erhalten, blenden Sie die Login div und zeigt das Bedienpanel div. Anhand der Daten aus der AJAX Login, füllen Sie das Panel benutzerdefinierte Informationen. Ich gehe davon aus das Gespräch AJAX Login werden die notwendigen Informationen zurückgeben, die in dem Benutzernamen zu füllen und was sie tun können. Dies macht es einfach, so dass Sie in dem HTML-Code ziehen müssen, um für die gesamte Bedienpanel nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top