Mit JS Wert aus PHP != bei window.setTimeout?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mit JS Wert aus PHP != bei window.setTimeout?

    Hi,

    für den Fall, das das hier das flasche Board ist, bitte ich um Entschuldigung.
    Da das JS funzt, würde ich von euch in erster Linie wissen wollen, wie ich die PHP-Variable $beats mit JS aktualisieren kann, ohne iFrames, Frames oder was weiß ich zu verwenden.


    Was tut das Script?
    Mit PHP rechne ich die babylonische Zeit in den Swatch-TimeBeat.
    JS soll die Abfrage alle 0.864 Sekunden abfragen und ich weiß nicht wie ichs anstellen soll.
    Hab in das JS mal "new Date()" dazwischen geklemmt, damit man sieht, dass überhaupt was passiert.
    Wie bekomme ich es hin, dass die PHP-Funktion swatchbeats() nicht nur beim Seitenaufruf ausgeführt wird? "setInterval" hier anzuwenden, brachte nur einen "Fatel Error...".

    Eigentlich sollte sich die Funktion Clock() den Beat jedesmal neu holen - oder hab ich nen Denkfehler?

    Vielen Dank für eure Hilfe.

    lg


    Der Dummy-Code (swatch.php):


    Quellcode

    1. <html>
    2. <head>
    3. </head>
    4. <body>
    5. <script language="JavaScript" type="text/JavaScript">
    6. <!--
    7. function Clock() {
    8. <?
    9. function swatchbeats() {
    10. ...
    11. $beats = time();
    12. return ($beats);
    13. }
    14. ?>
    15. clocktext = "PHP: <? echo swatchbeats(); ?> vs. JS: " + new Date();
    16. if(document.all)
    17. document.all.MicrosoftUhr.innerHTML = clocktext;
    18. else if(document.layers)
    19. {
    20. document.NetscapeUhr.document.open();
    21. clocktext = '<span class="Uhr")>' + clocktext + '</span>';
    22. document.NetscapeUhr.document.write(clocktext);
    23. document.NetscapeUhr.document.close();
    24. }
    25. window.setTimeout("Clock()",864);}
    26. //-->
    27. </script>
    28. <div id="MicrosoftUhr" class="Uhr"></div>
    29. <layer id="NetscapeUhr" left="350"></layer>
    30. <script language="JavaScript" type="text/JavaScript">
    31. <!--
    32. window.setTimeout("Clock()",864);
    33. //-->
    34. </script>
    35. </body>
    Alles anzeigen
  • okay, vielen Dank.
    Habs mit Ajax gemacht:
    span-Tag im HTML >> HTML >> lädt js >> js macht http_request >> schreibt Daten ins span-Tag.

    Es existieren jetzt drei Files:
    swatch.ajax.js (schreibt den TimeBeat in x_beliebiges.html)
    get.php (gibt den TimeBeat an swatch.ajax.js zurück)

    Quellcode

    1. // Kommentare erbeten, wer Probleme wegen der Zeitzonen hat, bitte melden!
    2. // Ausgangszeit ist IMMER BMT-Zone, nicht, wie in JS, die Uhrzeit des Client-Rechners - darum auch in PHP.
    3. $curtime = time();
    4. $utcdiff = date('Z', $curtime); // get difference to UTC in seconds
    5. $bmttime = $curtime - $utcdiff + 3600; // BMT = UTC+0100
    6. $hs_act = date('H', $bmttime)*3600 + date('i', $bmttime)*60 + date('s', $bmttime); // seconds since midnight (BMT)
    7. $ssm = date('i', $bmttime)*3600 + date('s', $bmttime);
    8. $sss = date('s', $bmttime);
    9. $beats = floor( $hs_act/86.4 ); // 86400 seconds = 1000 beats, so 1 beat = 86.4 seconds
    10. $dezi_beats = floor( ($hs_act-($beats*86.4))/8.64 );
    11. $centi_beats = floor( (($hs_act-($beats*86.4))/0.864)-$dezi_beats*10 );
    12. $beats = " @".$beats.":".$dezi_beats.":".$centi_beats;
    13. echo $beats;
    Alles anzeigen


    Kompletten Code werde ich in meinem Blog einstellen.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von icronosonic ()