Div layer nach login schließen

  • Johoooo,

    ich hab schon relativ viel selber hinbekommen mit der Hilfe von google und Ausprobiererei. Jetzt hab ich aber doch ein Problemchen...
    Hier zuerst mal die Bilder, dann versteht man mich glaub ich besser...

    1:
    [Blockierte Grafik: http://img191.imageshack.us/img191/2177/onecz.jpg]
    2:
    [Blockierte Grafik: http://img29.imageshack.us/img29/5523/twoko.jpg]
    3:
    [Blockierte Grafik: http://img801.imageshack.us/img801/337/threek.jpg]

    Beim klicken auf login öffnet sich das weiße layer welches mit Daten per ajax befüllt wird. Die abgeschickten Daten werden auch wieder per Ajax verarbeitet. Das login klappt wunderbar, wie ihr auf Bild 3 seht.

    Mein Problem jetzt jedoch ist, dass ich gerne bei erfolgreichem login das weiße div unter dem login-button wieder schließen würde und die Willkommensnachricht im div, dass den login-button ernthält darstellen möchte. Geht sowas überhaupt und wenn ja wie?

    dankeschön schnmal im Voraus =)

  • Link zur Seite gibts nicht, weil die Seite noch in der Entwicklung steht und nur local verfügbar ist ;)

    synaptic: Callback hört sich vom Namen her gut an, aber ansonsten sagt mir das nix^^ Haste nen guten link dazu zufällig?


    Dankeschön schonmal an beide =)

  • nen link nicht aber nen beispiel auf basis von jquery (ich gehe mal davon aus, dass du jquery nutzt weil damit ajax am simpelsten is)

    Code
    $.get('login.php', function(){
        $('#layer').slideup(500);
    })
  • jquery benutze ich nicht, denke ich^^
    Wie gesagt bin relativ neu in der Materie und hab alles nur durch ausprobieren hinbekommen mehr oder weniger ;)
    Ich schreib ma bisschen code:

    index

    Code
    <div class="lpanel">
        <div class="lpanel_register"><a href="registrieren.php">Registrieren</a></div>
        <div class="lpanel_btn">
        <a href="#" onClick="javascript:ajax_login('members/ajax_login');javascript:document.getElementById('ersetzen').style.display='block';javascript:setzeNullDetail(1)"><img src="http://t2.gstatic.com/images?q=tbn:ANd9GcSUfP3AxabhmPf2T6z1Jkmo_im_2FgvHV9FmWqRHgoSWpNhY-hu"></a>
        </div>    
            <div id="ersetzen"></div>
    </div>


    ajax_login.js


    In members/ajax_login.php wird dann per session geguckt, wenn user nicht eingeloggt ist wird das login form angezeigt und entsprechend bearbeitet:

    Code
    <form id="logit" method="POST" action="members/process.php" onsubmit="macheRequest('members/process.php'); return false;" name="logit">


    wenn er schon eingeloggt ist wird das entsprechende user panel angezeigt [das klappt mittlerweile auch (hab einfach ein div über das div mit dem login button gelegt)]:
    [Blockierte Grafik: http://img851.imageshack.us/img851/4963/fourd.jpg]


    Jetzt müsste ich wie gesagt nur noch das weiße div zukriegen nachdem das login form bearbeitet wurde...

  • Also ich habe nochmal ein bisschen recherchiert und getestet und wollte meine Erkenntnisse teilen und nochmal kurz zusammenfassen:

    In der index.php wird bei klick auf den button mit ajax request an members/ajax_login gepostet, dort wird da der benutzer nicht eingeloggt ist das login form angezeigt. Die form Daten werden per ajax und post wiederum an members/process.php geschickt und dort verarbeitet. Dort werden entweder fehler ins array geschrieben oder bei erfolgreichem login die session gestartet und der user eingeloggt. Danach gehts per header("Location: ".$session->referrer); wieder zurück nach members/ajax_login.php und dort wird dann [ich gehe jetzt von erfolgreichem login aus] das user panel angezeigt, da der user nun eingeloggt ist. Ich müsste nun also in dem code " if($session->logged_in){... " in members/ajax_login nicht nur das userpanel anzeigen lassen, sondern auch das <div id="ersetzen"> aus der index.php mit display:none; killen.

    Einer eine Idee?

    Einmal editiert, zuletzt von Acendro (25. Juli 2011 um 00:45)