2016-04-07 26 views
0

Hwy Jungs, ich versuche, eine Benachrichtigung vor dem erneuten Laden der Seite zu zeigen. Ich habe zuerst die Benachrichtigungsanweisung und dann die Neuladeanweisung gegeben. Nach dieser Logik sollte die Benachrichtigung zuerst erscheinen und dann sollte die Seite neu geladen werden. Aber was passiert ist, wenn die Seite neu geladen wird, aber keine Benachrichtigung auf dem Bildschirm erscheint. Wenn ich die Neuladeanweisung entferne, erhalte ich die Benachrichtigung. Warum ist das so? Was muss ich tun, um die Benachrichtigung zu erhalten und dann die Seite neu zu laden? Folgendes habe ich getan:Versuchen, notifIt vor dem erneuten Laden anzuzeigen

success: function(data, text){ 
         jQuery().msgbox_success(data.message); 
         window.location.replace("projection.php"); 
       } 

Antwort

0

JavaScript ist asynchron. Das Skript stoppt nicht nach dem Abfeuern msgbox_success() und wird direkt zu gehen. Die Nachricht hat keine Zeit, um angezeigt zu werden. Es gibt ein paar verschiedene Möglichkeiten, dies zu handhaben:

  1. ein alert() stattdessen verwenden. Dies erzwingt die Ausführung von JavaScript. alert(data.message)

  2. Wrap window.location.replace() in einem setTimeout so dass seine Ausführung bis einem späteren Zeitpunkt aufschieben wird: setTimeout(function(){ window.location.replace("projection.php"); }, 3000);

Persönlich würde ich für # 2 entscheiden.

+0

Das funktioniert. Ich möchte die Daten, die ich in der Datenbank gespeichert habe, zusammen mit der Erfolgsmeldung hierher bringen und sie einfach mit demselben Textfeld binden. Kann ich das tun? –

+0

Ich bin mir nicht ganz sicher, was Sie meinen, aber ich denke etwa so: 'jQuery (" input "). Val (someData +" "+ data.message);' oder 'jQuery (" div "). Text (someData + "" + data.message); ' –

+0

Was ich meinte war, ich speichere einen Wert in der Datenbank und gebe eine Nachricht durch json encode zurück, die besagt, dass der Datensatz erfolgreich gespeichert wurde. Meine Frage ist, während ich die Nachricht zurückbringe, kann ich die gespeicherten Daten bringen und sie an das gleiche Textfeld binden, von wo der Wert gesendet wird. Ich habs? –

Verwandte Themen