kostenloser Webspace werbefrei: lima-city


onload bei tr

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    Es gibt anscheinend ja leider kein onload attribut bei tag/tabelle">tabellenzeilen.
    Gibt es eine Möglcihkeit den gleichen effekt anders zu gestatlen, das Problem ist, dass die zeilen mit php generiert werden, und ich nicht weiß wie sie heißen noch wie viele es sind.
    Der SInn ist es einen Countdown starten zu lassen sobald die seite geladen ist.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Schreibe onload in das <body>.
    Es ist das einzige Element, in dem onload funktioniert.
  4. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    Dann habe ich aber nicht mehr die richtigen parameter in der Funktion.

    Gibt es vielleicht in jquery eine Möglcihkeit?
  5. Mit jquery kenne ich mich nicht aus.

    Aber einige Informationen kannst du auch mit Javascript auslesen.
    Hier mal ein Beispiel:
    <!doctype html>
    <html>
      <head>
        <title>Tags Z&auml;hlen</title>
        <script type="text/javascript">
          function zaehlen() {
            alert(document.getElementsByTagName("tr").length);
          }
        </script>
      </head>
      <body onload="zaehlen();">
        <table border=1>
          <tr><td>Inhalt</td><td>Inhalt2</td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td></tr>
      </body>
    </html>
    Damit findest du schonmal heraus, wie viele Zeilen es sind.

    Viel mehr kann ich hier nicht helfen.
    Erkläre doch noch genauer, welche Parameter die Funktion bekommt und wo man diese in html findet.
    Auch Beispielcode wäre nicht schlecht.


    Eine ganz andere Möglichkeit wäre Serverseitig.
    Du speicherst alle Zeilen in einer Variable und gibst sie erst zum Schluss aus.
    Das sieht dann etwa so aus:
    $tabellenzeilen="";
    while (bedingungerfuellt()) {
      $tabellenzeilen.="<tr>...</tr>";
    }
    
    echo '<body onload="funktion(...)">'; // Du hast ja jetzt alle Infos
    echo $tabellenzeilen;
  6. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    php erstellt mit hilfe eines arrays und einer foreachschleife eine Tabelle mit einer bestimmen zeilenanzahl, die einzelnen trs haben eine id in Form von aufrag_345 oder so.
    Jetzt möchte ich eine Funktion aufrufen, die in dieser Zeile einen Countdown macht, sobald das document geladen ist.
  7. Vielleicht so:
    <!doctype html>
    <html>
      <head>
        <title>Countdown</title>
        <script type="text/javascript">
          function settimer(elemente,sekunde) {
            if (sekunde > 0) {
              setTimeout("settimer("+elemente+","+(sekunde-1)+");",1000);
            }
            for (var k=1; k<=elemente; k++) {
              document.getElementById("countdown"+k).innerHTML=sekunde;
            }
          }
        </script>
      </head>
      <body onload="settimer(7,20);">
        <table border=1>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown1"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown2"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown3"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown4"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown5"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown6"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown7"></td></tr>
      </body>
    </html>


    Die Anzahl der Elemente und damit auch der Zeilen bekommst du in PHP über:
    count($dein_arrray);
  8. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    Problem ist, dass die Ids nicht vortlaufend sind.
    Ich suche eigentlich nach einer einfachen methode, den komplizierten Weg bekomm ich auch alleine hin.
    Wollte aber erst mal fragen, ob jemand was einfaches parat hat.

    Beitrag zuletzt geändert: 24.8.2013 18:52:46 von unlikus
  9. Ich hab jetzt nicht viel verändert:
    <!doctype html>
    <html>
      <head>
        <title>Tags Z&auml;hlen</title>
        <script type="text/javascript">
          function settimer(sekunde) {
            if (sekunde > 0) {
              setTimeout("settimer("+(sekunde-1)+");",1000);
            }
            for (var k=0; k<elemente.length; k++) {
              document.getElementById("countdown"+elemente[k]).innerHTML=sekunde;
            }
          }
        </script>
      </head>
      <body onload="elemente=new Array(1,12,14,39,72,111,2369); settimer(20);">
        <table border=1>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown1"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown12"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown14"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown39"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown72"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown111"></td></tr>
          <tr><td>Inhalt</td><td>Inhalt2</td><td id="countdown2369"></td></tr>
      </body>
    </html>
    Und 9 Zeilen Skript sehe ich noch nicht als kompliziert, aber ok.
  10. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    bei deiner Version müsste ich mein php array 2 mal allein im template durchgehen.
    ich überlege mir selbst noch mal was, was für meine zwecke am besten geeignet ist.
    Wie gesagt, ich wollte nur fragen, ob es einen kurzen befehl oder so was gibt, womit mein code schlank bleiben würde.

    Aber kurze andere Frage: Gibt es eine (native) Javascript(jquery funktion mit der man secunden in einen string mit tagen, studnen, minuten, secunden umrechnen kann.
    Wenn nicht, einen algrorithmus hab ich schon, muss sich also keiner die Mühe machen, eine ganze Javascript funktion zu schreiben :)
  11. sallyundchamp

    sallyundchamp hat kostenlosen Webspace.

    ich habe irgendwie nicht verstanden was Du erreichen willst
    warum in jeder Zeile ein onload?
    PHP ist Server seitig und und Javascript Client seitig
    also kannst Du nicht davon ausgehen das die erste Zeile auch zuerst da ist oder das nicht alle gleichzeitig geladen werden

    Javascript ausführen sobald das Dokument fertig ist geht mit jQuery so
    $( document ).ready(function() {
    
    });


    da ich nicht genau weiß was Du machen willst, kann ich Dir nicht weiter helfen
    vielleicht wäre es auch besser die Tabelle in Javascript zu generieren
  12. Autor dieses Themas

    unlikus

    unlikus hat kostenlosen Webspace.

    Es ging mir beim in jeder Zeile ein onload nur darum, dass dort javascript mit einem eventhandler ausgeführt wird.
    Bei einem onload vom body hat man ja unter anderem das Problem, dass man nicht mit this am das elemnt zugreifen kann, man irgentwie wissen muss wie die ids der zeilen heißen und so weiter.

    Hab es jetzt übrigens gelöst:

    Den zeilen eine classe gegeben auftrag_tr

    $(document).ready(function(){
        $(".auftrag_tr").each(function(){
            auftrag_countdown($(this).attr("data-id"),false)
        });
    });


    mit jquery für jede Spalte eine Funktion aufgerufen die als Timerfungiert

    fals wer bruacht:
    formatiert eine anzahl von Sekunden

    function formatsec(sec)
    {
        var rest_bei_tage=sec%86400;
        var tage=(sec-rest_bei_tage)/86400;
        var rest_bei_stunden=rest_bei_tage%3600;
        var stunden=(rest_bei_tage-rest_bei_stunden)/3600;
        var rest_bei_minuten=rest_bei_stunden%60;
        var minuten=(rest_bei_stunden-rest_bei_minuten)/60;
        var secunden=rest_bei_minuten;
        if(tage==0)
        {
            var stag='';
        }
        if(tage==1)
        {
            var stag='1 Tag ';
        }
        if(tage>1)
        {
            var stag=tage+' Tage ';
        }
        return stag+mach_zweistellig(stunden)+':'+mach_zweistellig(minuten)+':'+mach_zweistellig(secunden);
    
    }
    function mach_zweistellig(zahl)
    {
        if(zahl<10)
        {
            zahl = '0' + zahl.toString();
        }
        return zahl;
    }


    kann geschlossen werden
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!