login  Naam:   Wachtwoord: 
Registreer je!
 Forum

JS in PHP (Opgelost)

Offline Spyfox - 10/02/2008 15:44 (laatste wijziging 10/02/2008 15:45)
Avatar van SpyfoxNieuw lid De bedoeling van onderstaand scriptje is om een countdown in een php functie te gieten.

Als ik de functie 1 maal uitvoer dmv:

  1. <?php
  2. echo countdown("test",3605);
  3. ?>

dan loopt die goed

als ik echter

  1. <?php
  2. echo countdown("test",3605);
  3. echo "<br>";
  4. echo countdown("test2",86461);
  5. ?>


begint die per 2 sec af te tellen en de tellers springen gelijk

dit is de script

  1. <?php
  2.  
  3. function countdown($countdown_naam,$countdown_tijd){
  4.  
  5. ?>
  6.  
  7. <script language="JavaScript">
  8.  
  9. var tijd="<?php echo"$countdown_tijd"; ?>"
  10.  
  11. function <?php echo"$countdown_naam"; ?>(){
  12.  
  13.  
  14.  
  15. if(tijd>0){
  16.  
  17.  
  18.  
  19. if(tijd>86399){
  20.  
  21. dagen=Math.floor(tijd/3600/24)
  22. uren=Math.floor((tijd-dagen*3600*24)/3600)
  23. minuten=Math.floor((tijd-dagen*3600*24-uren*3600)/60)
  24. seconden=Math.floor(tijd-dagen*3600*24-uren*3600-minuten*60)
  25.  
  26. var zichttijd=dagen+":"+uren+":"+minuten+":"+seconden
  27. }
  28.  
  29. else{
  30.  
  31. uren=Math.floor(tijd/3600)
  32. minuten=Math.floor((tijd-uren*3600)/60)
  33. seconden=Math.floor(tijd-uren*3600-minuten*60)
  34.  
  35. var zichttijd=uren+":"+minuten+":"+seconden
  36.  
  37. }
  38.  
  39.  
  40. document.getElementById("<?php echo"$countdown_naam"; ?>").innerHTML=zichttijd;
  41. countdownTimer=setTimeout("<?php echo"$countdown_naam"; ?>()",1000);
  42.  
  43.  
  44. tijd=tijd-1
  45.  
  46. }
  47.  
  48. else{
  49.  
  50. document.write("Blub")
  51.  
  52. }
  53.  
  54. }
  55.  
  56. </script>
  57.  
  58. <?php
  59.  
  60. return "<SPAN id=\"".$countdown_naam."\"></SPAN><SCRIPT language=\"JavaScript\">".$countdown_naam."()</SCRIPT>";
  61.  
  62.  
  63. }
  64.  
  65.  
  66. ?>

3 antwoorden

Gesponsorde links
Offline Rik - 10/02/2008 15:48
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Variabelen zijn global in javascript. Dus je kan wel twee aparte functies hebben, maar als de variabelen dezelfde naam hebben zullen ze elkaar toch beinvloeden. Is het niet makkelijker om met een array te werken?
Offline Spyfox - 10/02/2008 15:54 (laatste wijziging 10/02/2008 16:01)
Avatar van Spyfox Nieuw lid en een andere optie zonder array te werken is er niet  of wel

Ok this al opgelost 

  1. <?php
  2.  
  3. function countdown($countdown_naam,$countdown_tijd){
  4.  
  5. ?>
  6.  
  7. <script language="JavaScript">
  8.  
  9. var tijd<?php echo"$countdown_naam"; ?>="<?php echo"$countdown_tijd"; ?>"
  10.  
  11. function <?php echo"$countdown_naam"; ?>(){
  12.  
  13.  
  14.  
  15. if(tijd<?php echo"$countdown_naam"; ?>>0){
  16.  
  17.  
  18.  
  19. if(tijd<?php echo"$countdown_naam"; ?>>86399){
  20.  
  21. dagen<?php echo"$countdown_naam"; ?>=Math.floor(tijd<?php echo"$countdown_naam"; ?>/3600/24)
  22. uren<?php echo"$countdown_naam"; ?>=Math.floor((tijd<?php echo"$countdown_naam"; ?>-dagen<?php echo"$countdown_naam"; ?>*3600*24)/3600)
  23. minuten<?php echo"$countdown_naam"; ?>=Math.floor((tijd<?php echo"$countdown_naam"; ?>-dagen<?php echo"$countdown_naam"; ?>*3600*24-uren<?php echo"$countdown_naam"; ?>*3600)/60)
  24. seconden<?php echo"$countdown_naam"; ?>=Math.floor(tijd<?php echo"$countdown_naam"; ?>-dagen<?php echo"$countdown_naam"; ?>*3600*24-uren<?php echo"$countdown_naam"; ?>*3600-minuten<?php echo"$countdown_naam"; ?>*60)
  25.  
  26. var zichttijd<?php echo"$countdown_naam"; ?>=dagen<?php echo"$countdown_naam"; ?>+":"+uren<?php echo"$countdown_naam"; ?>+":"+minuten<?php echo"$countdown_naam"; ?>+":"+seconden<?php echo"$countdown_naam"; ?>
  27. }
  28.  
  29. else{
  30.  
  31. uren<?php echo"$countdown_naam"; ?>=Math.floor(tijd<?php echo"$countdown_naam"; ?>/3600)
  32. minuten<?php echo"$countdown_naam"; ?>=Math.floor((tijd<?php echo"$countdown_naam"; ?>-uren<?php echo"$countdown_naam"; ?>*3600)/60)
  33. seconden<?php echo"$countdown_naam"; ?>=Math.floor(tijd<?php echo"$countdown_naam"; ?>-uren<?php echo"$countdown_naam"; ?>*3600-minuten<?php echo"$countdown_naam"; ?>*60)
  34.  
  35. var zichttijd<?php echo"$countdown_naam"; ?>=uren<?php echo"$countdown_naam"; ?>+":"+minuten<?php echo"$countdown_naam"; ?>+":"+seconden<?php echo"$countdown_naam"; ?>
  36.  
  37. }
  38.  
  39.  
  40. document.getElementById("<?php echo"$countdown_naam"; ?>").innerHTML=zichttijd<?php echo"$countdown_naam"; ?>;
  41. countdownTimer=setTimeout("<?php echo"$countdown_naam"; ?>()",1000);
  42.  
  43.  
  44. tijd<?php echo"$countdown_naam"; ?>=tijd<?php echo"$countdown_naam"; ?>-1
  45.  
  46. }
  47.  
  48. else{
  49.  
  50. document.write("Blub")
  51.  
  52. }
  53.  
  54. }
  55.  
  56. </script>
  57.  
  58. <?php
  59.  
  60. return "<SPAN id=\"".$countdown_naam."\"></SPAN><SCRIPT language=\"JavaScript\">".$countdown_naam."()</SCRIPT>";
  61.  
  62.  
  63. }
  64.  
  65.  
  66. ?>
Offline Rik - 10/02/2008 16:03
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Zo kan het natuurlijk ook.  Had ik helemaal niet aan gedacht.  

Leuk btw dat je de opgelost knop ook op jezelf kan gebruiken. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.278s