JS Funktion in PHP while-Schleife


  • M3n70s
  • 1233 Aufrufe 9 Antworten

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

  • JS Funktion in PHP while-Schleife

    Ich habe hier eine PHP Funktion, der man Sekunden übergeben kann, und die Funktion macht dann einen Countdown daraus. Ich programmiere selbst nur PHP, und darum kann ich mir selbst nicht mehr weiterhelfen. Hab die Funktion von nem Kumpel, der weiss aber auch nicht weiter.
    Funktion:

    HTML-Quellcode

    1. <script language="JavaScript">
    2. function countdown(sekunden,divid){
    3. s=sekunden;
    4. h=Math.floor(s/3600); s-=h*3600;
    5. m=Math.floor(s/60); s-=m*60;
    6. h=h<10?'0'+h:h; m=m<10?'0'+m:m; s=s<10?'0'+s:s;
    7. document.getElementById(divid).innerHTML=h+':'+m+':'+s; sekunden--;
    8. if(sekunden>=0){ setTimeout('countdown(s,divid)',1000); }else{document.getElementById(divid).innerHTML= 'Abgelaufen';}
    9. }
    10. </script>
    Dann in der PHP while-Schleife hab ich das:

    HTML-Quellcode

    1. <script type="text/javascript">
    2. countdown('<?=$verbleibende_zeit?>','oase_<?=$id?>');
    3. </script>
    In der gleichen while-Schleife wird auch noch immer ein passender div-container erzeugt:

    HTML-Quellcode

    1. <div id="oase_<?=$id?>" align="center"></div>
    Der Countdown wird nicht angezeigt, und in der Fehlerkonsole bekomm ich für jeden while-Durchlauf folgende Meldung:

    Quellcode

    1. Fehler: document.getElementById(divid) is null
    2. Quelldatei: http://kolotool.salzfisch.ch/in/index.php?s=*****
    3. Zeile: 62
    Nach 2 Stunden suchen und probieren hoffe ich, dass mir hier geholfen wird
  • Der

    HTML-Quellcode

    1. <div id="oase_<?=$id?>" align="center"></div>
    muss vor

    HTML-Quellcode

    1. <script type="text/javascript">
    2. countdown('<?=$verbleibende_zeit?>','oase_<?=$id?>');
    3. </script>
    erzeugt werden, da sonst beim Ausführen der Function countdown der DIV-Container defakto null ist, sprich nicht existiert.;)

    Gruss
  • Nene, hab überall ein Unterstrich reingemacht ;)

    Funktion:

    HTML-Quellcode

    1. <script language="JavaScript">
    2. function countdown(sekunden,div_id){
    3. s=sekunden;
    4. h=Math.floor(s/3600); s-=h*3600;
    5. m=Math.floor(s/60); s-=m*60;
    6. h=h<10?'0'+h:h; m=m<10?'0'+m:m; s=s<10?'0'+s:s;
    7. document.getElementById(div_id).innerHTML=h+':'+m+':'+s; sekunden--;
    8. if(sekunden>=0){ setTimeout('countdown(s,div_id)',1000); }else{document.getElementById(div_id).innerHTML= 'Abgelaufen';}
    9. }
    10. </script>


    Div:

    HTML-Quellcode

    1. <div id="oase_<?=$id?>" align="center">
    2. <?php if($ablaufzeit < time()) echo "<img src=\"images/icons/exclamation.png\" />"; ?>
    3. </div>
    4. <script type="text/javascript">
    5. countdown('<?=$verbleibende_zeit?>', 'oase_<?=$id?>');
    6. </script>