2016-11-11 3 views
1

Ich mache Programm, was Daten in eine Datenbank einfügt. Ich habe diese Taste:Wie PHP-Funktion durch einen Timer auslösen

<form method='post'> 

Wenn es gedrückt wird, fügt es einige Daten in die Datenbank ein.

Ich möchte eine Funktion machen, die, wenn eine Taste gedrückt wird, auf x Zeit wartet und dann Daten in die Datenbank einfügt.

Ich möchte einem Spieler die Illusion geben, dass ein Gebäude im Bau ist, und es wird nach einiger Zeit aufsteigen.

sleep() funktioniert nicht, weil es die gesamte Website pausiert, und ermöglicht es nicht, in anderen Konstruktionen voranzukommen.

+4

statt verzögern die Einfügung, fügen Sie sofort mit einer zusätzlichen Spalte von 'available_at' ein, die den Zeitstempel enthält, wenn das Element verfügbar ist. – castis

+0

Sie können Ajax zum Erstellen von Illusion verwenden, aber warum möchten Sie das Einfügen in Datenbank verzögern –

+0

Das Problem ist, dass ein Gebäude 20lvls, so die Bauzeit ghrows beim Aktualisieren des Gebäudes hat. –

Antwort

0

Copy-Paste nächster Code in einer PHP-Datei und öffnen Sie sich in Ihrem Browser, wartet er 5 Sekunden (5000 Millisekunden), dann sendet das Formular (dieses Javascript-Timer kann Ihnen helfen):

<html> 
    <head> 
    <script type="text/javascript"> 
var tmr; 
function wait_before_submit (seconds) 
{ tmr = setTimeout(wait_seconds,seconds); // TIMER START. 
} 
function wait_seconds() 
{ clearTimeout(tmr);   // TIMER END. 
    document.getElementById("frm").submit(); // SUBMIT FORM. 
} 
    </script> 
    </head> 
    <body> 
    <form id="frm" method="post" action="some_script.php"> 
     <input type="text" name="txt"/> 
    </form> 
    <!-- ▼ NOTICE THIS BUTTON IS OUTSIDE THE FORM ▼ --> 
    <button onclick="wait_before_submit(5000)">Submit</button> 
    </body> 
</html> 
+0

Hier ist mein Code-> http://pastebin.com/D3xsbxRQ –

+0

Problem ist, dass ich den Timer im PHP-Code brauche, weil es - resourses, wenn Sie den Knopf drücken müssen –

+0

@ChillinProgrammer, wenn "Schlaf" stoppt Die gesamte Website, dann benötigen Sie Javascript, weil JavaScript-Timer anderen Teilen ermöglichen, weiter zu arbeiten. –