div nur einmal anzeigen

8

Ich möchte also einen ähnlichen stackoverflow mit der Nachricht an der Spitze aussehen.

Jetzt habe ich alles konfiguriert und so, aber ich habe ein Problem .. Die Nachricht zeigt nur das erste Mal an, beim zweiten Mal erscheint es nicht.

Ich weiß warum, etwas über jede ID muss einzigartig sein oder etwas in einer div .. Und dann habe ich rand(1, 300); (php) verwendet und es wird immer noch nicht funktionieren.

Hier sind meine Codes:

%Vor%

index.php:

%Vor%

msg.php:

%Vor%

CloseNotice2 () - (nur für den Fall, dass Sie das auch sehen wollen):

%Vor%

session.php:

%Vor%

CSS:

%Vor%

Ich denke, das ist alles. Ich hoffe du kannst mir helfen.

    
Karem 03.03.2010, 20:22
quelle

3 Antworten

0

Schließlich habe ich den Fehler selbst herausgefunden, und es war die Funktion timeout () innerhalb der checksession (); .. Es funktioniert jetzt wie ein Zauber :)

Ich musste nur das entfernen:

%Vor%

Ich weiß nicht, wie ich das beheben soll, aber ich werde in einer anderen Frage fragen, weil ich finde, dass das jetzt beantwortet wird! Aber danke Handlanger und Alan, dass du dir Zeit genommen hast, um mir zu antworten.

    
Karem 07.03.2010, 09:40
quelle
1

Sie fragen session.php ab, und wenn die Sitzungsvariable nicht gesetzt wurde, erscheint die Nachricht. Wenn die Sitzungsvariable festgelegt wurde, wird die Nachricht nicht angezeigt.

Vermutlich wird Ihre Sitzungsvariable 'user_message' nach dem ersten Seitenaufruf gesetzt, damit die Nachricht nicht mehr angezeigt wird. Ich konnte einen solchen Code nicht finden.

Ihr JavaScript findet die Nachricht div-container nach Klassenname "msg" / "message2" - dieses Verhalten wird nicht geändert, wenn die ID dieses div mit zufälligen Zahlen geändert wird. Was willst du mit diesen Zufallszahlen erreichen? Möchten Sie, dass der msg-Container mehr als nur einmal anzeigt?

bearbeiten:

Versuchen Sie zunächst, den folgenden Code zu verwenden. wird die Nachricht jetzt jedes Mal angezeigt?

%Vor%     
Phil Rykoff 03.03.2010 20:36
quelle
0

Das Problem scheint kein Fehler im Code zu sein, den Sie gepostet haben. Ich denke, die Variable $_SESSION['user_message'] hat sich irgendwann geändert (d. H. Gelöscht oder auf null gesetzt, false oder null). Sie setzen ihren Wert irgendwann einmal fest, sonst würde isset() gar nicht erst auf true zurückgehen.

Es ist wahrscheinlich viel einfacher, dieses Problem zu debuggen, indem Sie die tatsächliche Kommunikation zwischen Ihrem Browser und Ihrem Server überprüfen, zB mit FireBug oder einfach ein alert(data) direkt am Anfang des JS-Callbacks hinzufügen.

Wenn Sie keine Warnungen erhalten, wenn die Nachricht nicht angezeigt wird, liegt das Problem bei Ihrer JS (d. h. der AJAX-Aufruf wird nicht ausgelöst, kehrt nicht zurück oder der Code um ihn herum wird nie erreicht). Wenn Sie eine Warnung mit etwas anderem als 1 erhalten, liegt das Problem in der Serverantwort (wenn Sie display_errors aktiviert haben, wird es wahrscheinlich eine Fehlermeldung geben, wenn sie wirklich kaputt ist).

Ich hoffe, dir ist bewusst, dass dein .msg div aufgrund des Callbacks in deinem AJAX-Handler automatisch ausgeblendet wird, ob .message2 noch ausgeblendet ist oder nicht. Das Einblenden von .message2 bringt es nicht zurück, solange .msg ausgeblendet ist (obwohl das nicht erklärt, warum das div nicht auf einer anderen Seite wieder erscheint, die durch Klicken auf einen Link, Eingabe einer URL oder Erzwingen eines Neuladens geladen wird ). Dies kann ein Problem sein, wenn Sie den gesamten Inhalt über AJAX laden und keine "echten" URLs haben.

    
Alan Plum 06.03.2010 23:14
quelle

Tags und Links