Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wykonanie warunku po odliczeniu czasu
Forum PHP.pl > Forum > Przedszkole
pater2003
Witam
Mam do wykonania określone zadanie ale ma się ono wykonać po otwarciu strony i odliczeniu np 20 sekund
Czyli ktoś wszedł na moją stronę i u góry ma odliczanie 20, 19,18 ... aż do zero i po osinięciu 0 ma się wykonać
określone zadanie np. zapis do bazy
Czy ktoś mógłby mi podpowiedzieć jak to wykonać.
Pozdrwaiwma i dzięki z góry za pomoc.
Beniooo
Musisz dodać w JS odliczanie tych sekund(w necie od groma skryptów) a po osiągnięciu zera możesz np. ajaxem wywołać skrypt php odpowiedzialny za zapis do bazy ;-)
pater2003
No to już wiem gorzej z jakims przykładem próbowałem coś złożyć ale nie działa
Dlatego proszę o pomoc chociaż o podanie krótkiego kodu
rad11
Moze Ci sie przyda:

https://jsfiddle.net/z9mx621y/2/
  1. var i = 0;
  2. var time = setInterval(function(){
  3.  
  4. if(i <= 20){
  5. i++;
  6. }else{
  7.  
  8. $.ajax({
  9. method: "POST",
  10. url: "script.php",
  11. data: {
  12. post_name: post_data
  13. },
  14. dataType: "JSON",
  15. success: function(res){
  16.  
  17. console.log(res);
  18.  
  19. }
  20. });
  21. clearInterval(time);
  22. }
  23. }, 1000);
  24.  
  25.  
pater2003
Udało mi się coś takiego zrobić.
Po określonym czasie wykakuje komunikat i wykonuje się zadanie w pliku zapisdobazy.php
I wszystko jest ok ale jak zmusić teraz plik główny do pokazywania odliczania czasu do wyświetlenia tego komunikatu i do wykonania zadania w pliku
Settimout mam na 20sek i chodzi mi o to żeby na strone głównej odliczło ten czas czyli go pokazywało w jakiś sposób
Pzdrawiam i dziei za pomoc


<html>
<head>
<style>p { color:red; }</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function () {
$("p").text("The DOM is now loaded and can be manipulated.");
});
</script>

</head>
<body>

<?php

$aaa = addslashes($_GET['aaa']);

?>

<script type="text/javascript">
$(document).ready(function() {
setTimeout ( "doSomething()", 20000 );
});

function doSomething ( )
{

$.ajax({
type: "GET",
url: "zapisdobazy.php",
data: "<?php echo 'someData='.$_GET['someData'].'';?>",
success: function(msg){
alert( "Reklama wyswietlona 10sek. Potwierdozno zaliczenie: " + msg );
}
});

}
</script>

</body>
</html>
rad11
  1. <input type="text" id="time"/>
  2. var i = 0;
  3. var time = setInterval(function(){
  4.  
  5. if(i <= 20){
  6. $('#time').val(i);
  7. i++;
  8. }else{
  9. clearInterval(time);
  10. }
  11. }, 1000);
  12.  
  13.  
pater2003
A mógłbys mi poprawić mój kawałek kodu żeby to zadziało
Bo to co mi pokazałas ma sens ale nie wiem jak to zrobić aby działało
  1. <html>
  2. <head>
  3. <style>p { color:red; }</style>
  4. <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  5. <script>
  6. $(document).ready(function () {
  7. $("p").text("The DOM is now loaded and can be manipulated.");
  8. });
  9. </script>
  10.  
  11. </head>
  12. <body>
  13.  
  14. <?php
  15.  
  16. $aaa = addslashes($_GET['aaa']);
  17.  
  18. ?>
  19.  
  20. <script type="text/javascript">
  21. $(document).ready(function() {
  22. setTimeout ( "doSomething()", 20000 );
  23. });
  24.  
  25. function doSomething ( )
  26. {
  27.  
  28. $.ajax({
  29. type: "GET",
  30. url: "zapisdobazy.php",
  31. data: "<?php echo 'someData='.$_GET['someData'].'';?>",
  32. success: function(msg){
  33. alert( "Reklama wyswietlona 10sek. Potwierdozno zaliczenie: " + msg );
  34. }
  35. });
  36.  
  37. }
  38. </script>
  39.  
  40. </body>
  41. </html>
rad11
  1. <html>
  2. <head>
  3. <style>p { color:red; }</style>
  4. <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  5. <script>
  6. $(document).ready(function () {
  7. $("p").text("The DOM is now loaded and can be manipulated.");
  8. });
  9. </script>
  10.  
  11. </head>
  12. <body>
  13. <input type="text" id="time"/>
  14. <?php
  15.  
  16. $aaa = addslashes($_GET['aaa']);
  17.  
  18. ?>
  19.  
  20. <script type="text/javascript">
  21. $(document).ready(function() {
  22.  
  23. var i = 0;
  24. var time = setInterval(function(){
  25.  
  26. if(i <= 20){
  27. $('#time').val(i);
  28. i++;
  29. }else{
  30. clearInterval(time);
  31. }
  32. }, 1000);
  33.  
  34. setTimeout ( "doSomething()", 20000 );
  35. });
  36.  
  37. function doSomething ( )
  38. {
  39.  
  40. $.ajax({
  41. type: "GET",
  42. url: "zapisdobazy.php",
  43. data: "<?php echo 'someData='.$_GET['someData'].'';?>",
  44. success: function(msg){
  45. alert( "Reklama wyswietlona 10sek. Potwierdozno zaliczenie: " + msg );
  46. }
  47. });
  48.  
  49. }
  50. </script>
  51.  
  52. </body>
  53. </html>
pater2003
No kolego rad11 masz u mnie wielkie piwo smile.gif
Działa i to świetnie
Wielkie dzięki raz jeszcze.
rad11
Daj poprostu pomogl i bedziem kwita smile.gif
pater2003
Mam jeszcze jedno pytanko
Czy jak wyskoczy mi w tym co napisane jest powyżej alert czy da sięzrobić tak że po kliknięciu ok zamknie się okno strony?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.