2012-05-23 8 views
5

Grundsätzlich habe ich ein Skript, das alle 10 Sekunden die Datenbank überprüft und den Benutzer benachrichtigt, wenn sich die Daten mit einer Javascript-Warnmeldung geändert haben. Aber ich muss die Datenbank auch ändern, wenn der Benutzer die Warnung gesehen hat und auf OK geklickt hat. Ist es also möglich, eine JavaScript-Funktion auszuführen, wenn der Benutzer in der JavaScript-Warnmeldung auf "OK" klickt?Führen Sie ein anderes Javascript aus, wenn der Benutzer auf "OK" auf Alarmbox klickt

So zum Beispiel

<html> 
<head> 
<script type="text/javascript"> 
function show_alert() 
{ 
alert("New data!"); 
} 
</script> 
</head> 
<body> 

<input type="button" onclick="show_alert()" value="Show alert box" /> 

</body> 
</html> 

Und wenn Benutzer auf OK klickt sollte diese Funktion

function UpdateDB() 
    { 
     jQuery.ajax({ 
     type: "POST", 
     url: "update.php", 
     data: 'condition=ok', 
     cache: false, 

    }); 
} 
+0

Verwendung bestätigen statt Alarm http://www.tizag.com/javascriptT/javascriptconfirm.php –

+1

@Bondye Nichts falsch mit Alarm. Er möchte keine Benutzerbestätigung. – Jivings

+0

@Jivings Was ist mit 'wenn Benutzer die Warnung gesehen hat und auf OK geklickt hat ' –

Antwort

8

Die alert Funktion stoppt die Ausführung des Codes, bis es abgewiesen wird. Das bedeutet, dass jeder Code, den Sie nach dem Klicken auf die Warnung ausführen möchten, einfach nach dem Aufruf der Methode alert platziert werden kann.

alert("New data!"); 
UpdateDB(); 
+0

Das funktioniert gut, wenn ich nur eine Funktion mache, wo es die Daten an den Server sendet. Aber ich brauche meine Funktion, um die Seite auch nach dem POST zu aktualisieren. Aber wenn ich einen Erfolg 'Erfolg hinzufügen: Funktion (Antwort) { window.location.reload() } 'es einfach nur immer wieder neu geladen wird, auch ohne Alarm zeigt. – user1323294

+0

Kannst du ein jsfiddle.net zusammenstellen, wie du das bewerkstelligst und ich werde es mir ansehen. –

+0

Dies ist, was ich verwendet habe: http://jsfiddle.net/FFMrz/ So erhält es Daten vom Server alle 10 Sekunden und wenn die Daten geändert hat, zeigt es Alarm. Und nachdem der Benutzer die OK-Taste gedrückt hat, sollte er den jQuery-POST ausführen und dann das Fenster neu laden. Aber jetzt scheint es zu POST zu sein und das Fenster automatisch zu aktualisieren, ohne dass der Alarm angezeigt wird ... – user1323294

6
function show_alert() 
{ 
    alert("New data!"); 
    UpdateDB(); 
} 
7

laufen, was Sie wirklich gesuchte ist die confirm(). Ich glaube nicht, dass Sie auf einen Alarm reagieren können (und wirklich wollen Sie nicht, da es dem Benutzer nicht die Möglichkeit gibt, ihre Meinung zu ändern!) ...

so

if (confirm("Do you REALLY want this?")){ 
    //your AJAX CALL HERE 
} 
+0

Nicht, wenn er keine Benutzerbestätigung wünscht. – Jivings

+2

Einen Moment lang vergessen, dass das OP tatsächlich genau danach gefragt hat, als er sagte ... "wenn der Benutzer den Alarm gesehen und auf OK geklickt hat", was ist dann der Sinn des Alarms? Der Benutzer hat eine Taste gedrückt. Wenn überhaupt, möchten Sie die Warnung, nachdem der Ajax-Aufruf zurückkommt, sonst dient es überhaupt keinem Zweck! Und danke für die Abstimmung. Sie helfen der Gemeinschaft wirklich mit Ihrer Sorgfalt. Ich werde sicher zweimal nachdenken, bevor ich mich bemühe, jemandem zu helfen. –

+0

+1 für Dr.Dredel, GEBEN BENUTZER EINE CHOISE !! –

Verwandte Themen