Zeit runterzählen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeit runterzählen

    hallo zusammen,

    ich verzweifel seit tagen an einer sache. Undzwar versuche ich hier die Zeit runter zählen zu lassen. Soweit so gut klapt das auch schon jedoch wenn ich mehrere einträge habe sage ich mal 3 zählt er von den 3 den lezten runter und die anderen beiden nicht. Obwohl eine id zugewiesen ist.

    Ich sitze da schon Wochen drann und weiss einfach nicht mehr weiter. Verliere sogar schon fast die lust daran.

    Wäre klasse wenn mir hier jemand helfen könnte.


    bin echt sprachlos

    Hier nochmal den code

    HTML-Code:
    <table  class="main" width="100%" align="center">
    {foreach from=$transferlist item=trans}
     <tr bgcolor="{cycle values="#eeeeee,#dddddd"}">
                     <td width="2%"><div id="{$trans.id}">{$trans.str_time_f}</div>
                     {literal}
            <script type="text/javascript">
            v=new Date();
            var bx=document.getElementById({/literal}{$trans.id}{literal});
     
            function t()
            {
              n=new Date();
              s={/literal}{$trans.str_time}{literal}-Math.round((n.getTime()-v.getTime())/1000.);
              m=0;
              h=0;
              if(s<0)
              {
                bx.innerHTML=""
              }
              else
              {
                if(s>59)
                {
                  m=Math.floor(s/60);
                  s=s-m*60;
                }
                if(m>59)
                {
                  h=Math.floor(m/60);
                  m=m-h*60;
                }
                if(s<10)
                {
                  s="0"+s
                }
                if(m<10)
                {
                  m="0"+m
                }
                bx.innerHTML=h+":"+m+":"+s+"";
              }
              window.setTimeout("t();",999)
             }
             window.onload=t;
            </script>
            {/literal}
                     </td>
                       <td width="82%">{$trans.msg}</td>
                     </tr>
                      {/foreach}
                     </table>
    und hier mal der Quellcode des browsers

    HTML-Code:
    <table  class="main" width="100%" align="center">
     <tr bgcolor="#eeeeee">
                     <td width="2%"><div id="4121">02:09:43</div>
    
                     
            <script type="text/javascript">
            v=new Date();
            var bx=document.getElementById(4121);
     
            function t()
            {
              n=new Date();
              s=7783-Math.round((n.getTime()-v.getTime())/1000.);
              m=0;
              h=0;
              if(s<0)
              {
                bx.innerHTML=""
              }
              else
              {
                if(s>59)
                {
                  m=Math.floor(s/60);
                  s=s-m*60;
                }
                if(m>59)
                {
                  h=Math.floor(m/60);
                  m=m-h*60;
                }
                if(s<10)
                {
                  s="0"+s
                }
                if(m<10)
                {
                  m="0"+m
                }
                bx.innerHTML=h+":"+m+":"+s+"";
              }
              window.setTimeout("t();",999)
             }
             window.onload=t;
            </script>
            
                     </td>
                       <td width="82%"><font color='#00FF00'>Ihre Flotte wird bei 6:1:10 spionieren</font></td>
                     </tr>
                       <tr bgcolor="#dddddd">
                     <td width="2%"><div id="4120">02:07:28</div>
                     
            <script type="text/javascript">
            v=new Date();
            var bx=document.getElementById(4120);
     
            function t()
            {
              n=new Date();
              s=7648-Math.round((n.getTime()-v.getTime())/1000.);
              m=0;
              h=0;
              if(s<0)
              {
                bx.innerHTML=""
              }
              else
              {
                if(s>59)
                {
                  m=Math.floor(s/60);
                  s=s-m*60;
                }
                if(m>59)
                {
                  h=Math.floor(m/60);
                  m=m-h*60;
                }
                if(s<10)
                {
                  s="0"+s
                }
                if(m<10)
                {
                  m="0"+m
                }
                bx.innerHTML=h+":"+m+":"+s+"";
              }
              window.setTimeout("t();",999)
             }
             window.onload=t;
            </script>
    
            
                     </td>
                       <td width="82%"><font color='#00FF00'>Ihre Flotte wird bei 6:1:10 spionieren</font></td>
                     </tr>
                                       </table>

    Vileicht kann mir hier jemand helfen

    lg
    Dragon
    Zuletzt geändert von Dragoni25; 25.06.2010, 12:42.

  • #2
    Der Browser führt sofort alle Javascript-Blöcke aus - vermutlich in der Reihenfolge wie sie im Quelltext stehen. Beim ersten Codestück wird eine Variable bx angelegt. Beim zweiten Codestück wird sie jedoch mit einem neuen Wert überschrieben und beim dritten abermals.

    Verwende für jeden Abschnitt eindeutig benannte Variablen, am besten nicht global, so dass jeder Codeblock für sich isoliert läuft.

    Und dann solltest du dich schlau machen, wie man Eventhandler, insbesonder für window.onload richtig registriert. window.onload ist so wie du es verwendest nämlich auch eine globale Variable, die dur in jedem Codeblock wieder überschreibst.

    Kommentar


    • #3
      Hallo und willkommen im Forum,

      serverseitigen Code wie z. B. Smarty wollen wir in diesem Forum nicht sehen. Das Problem ist nicht ausführlich genug beschrieben und auch einen Vergleich von gewünschtem und tatsächlichem Verhalten stelle ich mir nachvollziehbarer vor.

      Bitte überarbeite deinen Beitrag nochmal und beachte dabei die Forenregeln, dann sehen wir weiter.

      Edit: da war wohl jemand schneller.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        erlisch gesagt habe ich das jetzt nicht verstanden was du damit meinst. In einem anderen forum hatte man mir gesagt das die id eindeutig ist bx ich müsste immer eine id zuweisen also nahm ich die id aus der datenbank mit bx{trans.id} aber das geht ja auch nicht.

        Kommentar


        • #5
          Zitat von Dragoni25 Beitrag anzeigen
          In einem anderen forum hatte man mir gesagt das die id eindeutig ist bx ich müsste immer eine id zuweisen also nahm ich die id aus der datenbank mit bx{trans.id} aber das geht ja auch nicht.
          Du musst alle Vorkommen von bx, auch die in der Funktion t so ändern und zusätzlich auch den Namen der Funktion auf diese Art eindeutig machen. Stell es dir so vor: Funktionen sind in Javascript auch nur Variablen und mit dem wiederholten Definieren von t() überschreibst du vorherige Definitionen. Letztenendes existiert also nur das t() mit dem bx* wo * die letzte trans.id ist.

          Eigentlich solltest du die Funktion nur einmal im Quelltext haben und mit entsprechenden Parametern versehen, so dass du sie aus jedem Codeblock aufrufen kannst und dabei bx* u.w. übergibst.

          Damit ist jetzt alles gesagt und weil Crosspostings unanständig sind, bin ich hier raus!

          Kommentar


          • #6
            naja hilft mir auch nicht wirklich.... Account bitte löschen

            Kommentar

            Lädt...
            X