Mirsad Kozlica: Die höhe einer leeren Zeile über JS dynamisch verändern.

Hallo liebes Forum. Ich hoffe euch gehts gut.

Also zu meinem Problem. Ich habe eine Tabelle wo ich auf der linken seite ein tr - tag in dem Buttons sind, für jedes datum ein button. Daneben habe ich mehrere tr - tags mit den Werten die sich super über die DB ändern. Nur wenn es mehr als 8 Buttons werden, werden die tr - tags die neben dem tr - tag (wo die buttons sind) in die länge gezogen. Das tr - tag mit den Buttons ist über ein rowspan neben die restlichen tr - tags gelegt.

Meine Lösung war, eine leere Zeile die ich für jeden Button um 25px erhöhe, die JS Funktion funktioniert tadellos, nur wie bekomme ich den errechneten wert in das height attribut?

Bsp:

<tr>
   <td height="?????" bgcolor="#F0F0F0">
   </td>
</tr>

Danke für eure Hilfe.

  1. Hallo liebes Forum. Ich hoffe euch gehts gut.

    Hi Mirsad,

    ja mir geht's gut.

    Ich befürchte allerdings, dass niemand - mich eingeschlossen - Dein Problem versteht.
    Versuche doch, dich klarer auszudrücken (Was ist ein "tr - tag auf der linken(??) Seite"? Was ist DB?)

    Grüße,
    Martin

    1. Hallo liebes Forum. Ich hoffe euch gehts gut.
      Hi Mirsad,

      ja mir geht's gut.

      Ich befürchte allerdings, dass niemand - mich eingeschlossen - Dein Problem versteht.
      Versuche doch, dich klarer auszudrücken (Was ist ein "tr - tag auf der linken(??) Seite"? Was ist DB?)

      also DB heißt Datenbank. tr - tag auf der linken seite heißt .. ich habe eine Tabelle wo ich ein tr - tag habe, und es optisch auf der linken seite ist, dann habe ich weitere tr - tags die daneben liegen, also mit rowspan = "10" z.B. ich hoffe das es jetzt verständlicher ist, wenn du willst schicke ich dir den teil?

      1. Hi,

        tr - tag auf der linken seite heißt .. ich habe eine Tabelle wo ich ein tr - tag habe, und es optisch auf der linken seite ist, dann habe ich weitere tr - tags die daneben liegen,

        tr - tags liegen eigentlich nirgendwo, sie stehen im Quelltext und definieren _vertikale_ Elemente einer Tabelle, sogenannte "table rows" = Tabellen_reihe_ (Tag: tr).
        _Horizontal_ angeordnete Elemente einer Tabelle werden durch td-tags definiert.

        Die (eine) konkrete Lösung hat Günter bereits erläutert.

        Grüße,
        Martin

  2. Hallo Mirsad

    <tr>
       <td height="?????" bgcolor="#F0F0F0">
       </td>
    </tr>

    wenn's schon JS sein muss - SSI wäre z.B. besser
    <tr>
    <!-- hier mit JS //-->
    <script language="JavaScript"><!--
    document.write('<td height="'+variable+'" bgcolor="#F0F0F0">');
    //-->
    </script>
    <!-- jetzt noch was für Besucher ohne JS, damits keinen Syntaxfehler gibt //-->
    <noscript>
    <td bgcolor="#F0F0F0">
    </noscript>

    Viele Grüße  Günter

    1. Hallo Mirsad

      <tr>
         <td height="?????" bgcolor="#F0F0F0">
         </td>
      </tr>

      wenn's schon JS sein muss - SSI wäre z.B. besser
      <tr>
      <!-- hier mit JS //-->
      <script language="JavaScript"><!--
      document.write('<td height="'+variable+'" bgcolor="#F0F0F0">');
      //-->
      </script>
      <!-- jetzt noch was für Besucher ohne JS, damits keinen Syntaxfehler gibt //-->
      <noscript>
      <td bgcolor="#F0F0F0">
      </noscript>

      ähm günther, danke für die super hilfe, jetzt hab ich das aber im script eingefügt und er gibt mir eine weiße seite aus, das hängt wahrscheinlich mit dem document.write zusammen, weil das öffnet immer eine neue seite.

      wie kann ich das umgehen?

      1. Hallo Mirsad

        jetzt hab ich das aber im script eingefügt und er gibt mir eine weiße seite aus, das hängt wahrscheinlich mit dem document.write zusammen, weil das öffnet immer eine neue seite.

        wie kann ich das umgehen?

        wie hast Du das eingefügt ???
        Poste das mal; ansonsten: no source - no problem!

        Viele Grüße Günter

        1. function dynTableHeight(){
           var hoehe = 0;

          if(document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value > 8){
            diff = document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value - 8;
            hoehe = diff * 25;
            document.write('<td height="+hoehe+" bgcolor="#f0f0f0">');
           }
           return hoehe;
          }

          die Funktion, und den Teil vom HTML folgt:

          .
          .
          .

          <tr>
          <td valign="top" style="width: 140px" height="40px" bgcolor="#f0f0f0"><b>Händler -<br>Lieferant:</b><br></td>
          <td valign="top" style="width: 240px" bgcolor="#f0f0f0">APT</td>
          <td valign="top" colspan="3" bgcolor="#f0f0f0"><b>Händler -<br>Empfänger:</b><br></td>
          <td valign="top" bgcolor="#f0f0f0">EVN</td>
          </tr>
          <tr>
           <td height="px" bgcolor="#f0f0f0" colspan="6">
           </td>
          </tr>

          <tr>
          <td style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px" valign="top" colspan="7">
          <hr></td>
          </tr>

          .
          .
          .

          ich hoffe das hilft dir einigermasen.

          1. Hallo Mirsad,

            sieht ja schön aus, aber wo rufst Du die Funktion auf?

            function dynTableHeight(){
            var hoehe = 0;

            if(document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value > 8){
              diff = document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value - 8;
              hoehe = diff * 25;
              document.write('<td height="+hoehe+" bgcolor="#f0f0f0">');
            }
            return hoehe;
            }

            die Funktion, und den Teil vom HTML folgt:

            .
            .
            .

            <tr>
            <td valign="top" style="width: 140px" height="40px" bgcolor="#f0f0f0"><b>Händler -<br>Lieferant:</b><br></td>
            <td valign="top" style="width: 240px" bgcolor="#f0f0f0">APT</td>
            <td valign="top" colspan="3" bgcolor="#f0f0f0"><b>Händler -<br>Empfänger:</b><br></td>
            <td valign="top" bgcolor="#f0f0f0">EVN</td>
            </tr>
            <tr>
            <td height="px" bgcolor="#f0f0f0" colspan="6">
            </td>
            </tr>

            <tr>
            <td style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px" valign="top" colspan="7">
            <hr></td>
            </tr>

            An der Stelle erfolgt ja dann die Ausgabe der mit
            document.write generierten <td>-Zellen

            Grüße  Günter

            1. Der aufruf ist im Body - Tag mit onload, weil er es aus dem td - tag direkt nicht aufrufen wollte, oder gibt es dafür doch eine möglichkeit?

              Danke nochmal das du dir Zeit für mich nimmst, ich bin sicher lästig, hehe. Danke!!

              1. Hallo Mirsad,

                jetzt mal langsam, Schritt für Schritt.
                Welches der folgenden <td>s (aus Deinem Beispiel) willst Du modifizíeren?

                <tr>
                <td valign="top" style="width: 140px" height="40px" bgcolor="#f0f0f0"><b>Händler -<br>Lieferant:</b><br></td>
                <td valign="top" style="width: 240px" bgcolor="#f0f0f0">APT</td>
                <td valign="top" colspan="3" bgcolor="#f0f0f0"><b>Händler -<br>Empfänger:</b><br></td>
                <td valign="top" bgcolor="#f0f0f0">EVN</td>
                </tr>
                <tr>
                 <td height="px" bgcolor="#f0f0f0" colspan="6">
                 </td>
                </tr>

                <tr>
                <td style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px" valign="top" colspan="7">
                <hr></td>
                </tr>

                1. Es ist dieses hier:

                  <tr>
                   <td height="px" bgcolor="#f0f0f0" colspan="6">
                   </td>
                  </tr>

                  bitte wenn du mir helfen kannst wäre ich dir echt super dankbar. Weil ich muss das heute spätestens morgen früh für die Firma abgeben. Das soll jetzt nicht so etwas sein wie das ich dich zwinge mir zu helfen sondern wenn du einen Vorschlag hast wäre ich dir dankbar.

                  :-) Danke ..

                  1. Hallo Mirsad,

                    dann eben so:

                    <html>
                    <body>
                    <table>
                    <tr>
                    <td valign="top" style="width: 140px" height="40px" bgcolor="#f0f0f0"><b>Händler -<br>Lieferant:</b><br></td>
                    <td valign="top" style="width: 240px" bgcolor="#f0f0f0">APT</td>
                    <td valign="top" colspan="3" bgcolor="#f0f0f0"><b>Händler -<br>Empfänger:</b><br></td>
                    <td valign="top" bgcolor="#f0f0f0">EVN</td>
                    </tr>
                    <tr>
                    <script language="JavaScript"><!--
                     var hoehe = 0;
                     if(document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value > 8){
                      diff = document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value - 8;
                      hoehe = diff * 25;
                     }
                    document.write('<td height="'+hoehe+'px"bgcolor="#f0f0f0" colspan="6">');
                    //-->
                    </script>
                    <noscript>
                    <td height="1px" bgcolor="#f0f0f0" colspan="6">
                    </noscript>
                     </td>
                    </tr>

                    <tr>
                    <td style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px" valign="top" colspan="7">
                    <hr></td>
                    </tr>
                    </table>

                    </body>
                    </html>

                    ich hoffe, das war's dann ...
                    Grüße Günter

                    1. Hallo Mirsad,

                      dann eben so:

                      <html>
                      <body>
                      <table>
                      <tr>
                      <td valign="top" style="width: 140px" height="40px" bgcolor="#f0f0f0"><b>Händler -<br>Lieferant:</b><br></td>
                      <td valign="top" style="width: 240px" bgcolor="#f0f0f0">APT</td>
                      <td valign="top" colspan="3" bgcolor="#f0f0f0"><b>Händler -<br>Empfänger:</b><br></td>
                      <td valign="top" bgcolor="#f0f0f0">EVN</td>
                      </tr>
                      <tr>
                      <script language="JavaScript"><!--
                      var hoehe = 0;
                      if(document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value > 8){
                        diff = document.Durchleitungsinfo.txtSUMDURCHLEITUNGEN.value - 8;
                        hoehe = diff * 25;
                      }
                      document.write('<td height="'+hoehe+'px"bgcolor="#f0f0f0" colspan="6">');
                      //-->
                      </script>
                      <noscript>
                      <td height="1px" bgcolor="#f0f0f0" colspan="6">
                      </noscript>
                      </td>
                      </tr>

                      Wäre eine Lösung, doch ich bräuchte die JS Datei auserhalb, weil ich die nicht nur für dieses Programm verwende. Wenn du dazu noch etwas wüsstest wäre es super.

                      1. Hallo Mirsad,

                        jetzt aber
                        http://www.teamone.de/selfaktuell/forum/faq/forumsfaq_2.htm#a1 NAQ1 !

                        Günter