Zeilen ein- und Ausblenden

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

  • Zeilen ein- und Ausblenden

    Hallo, ich suche schon seit längerem ein Script um Zeilen ein und aus zu blenden. nun habe ich auch schönes Script gefunden :
    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    >
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    title>Element einund ausblenden</title>
    <
    script type="text/javascript">
    function 
    showelement (PElementID)
    {
      var 
    ElementID document.getElementById(PElementID);
      if (!
    ElementID) return;
      
    ElementID.style.display = (ElementID.style.display == "none") ? "block" "none";
    }

    function 
    ol_ausblendung ()
    {
      for (
    i=1i<=3i++)
        
    showelement('div'+i);
    }
    </
    script>
    </
    head>
    <
    body onload="ol_ausblendung()">

    <
    a href="javascript:showelement('div1')">Div1 einund ausblenden</a><br />
    <
    div id="div1" style="border:#FF0000 3px solid; width:300px; display:block;">
      
    Div1<br />
      
    Textzeile 2<br />
      
    Textzeile 3
    </div>

    <
    a href="javascript:showelement('div2')">Div2 einund ausblenden</a><br />
    <
    div id="div2" style="border:#00FF00 3px solid; width:300px; display:block;">
      
    Div2<br />
      
    Textzeile 5<br />
      
    Textzeile 6
    </div>

    <
    a href="javascript:showelement('div3')">Div3 einund ausblenden</a><br />
    <
    div id="div3" style="border:#0000FF 3px solid; width:300px; display:block;">
      
    Div3<br />
      
    Textzeile 8<br />
      
    Textzeile 9
    </div>

    </
    body>
    </
    html
    Ich würde dieses gerne in meinem Nachrichtenscript einbauen
    und habe es wie folgt :
    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Element ein- und ausblenden</title>
    <script type="text/javascript">
    function showelement (PElementID)
    {
      var ElementID = document.getElementById(PElementID);
      if (!ElementID) return;
      ElementID.style.display = (ElementID.style.display == "none") ? "block" : "none";
    }

    function ol_ausblendung ()
    {
      for (i=1; i<=3; i++)
        showelement('div'+i);
    }
    </script>
    </head>
    <body onload="ol_ausblendung()">
    ......
    <?
    if (strlen($row["text"]) > 40)
     {
      $text = substr($row["text"], 0, 40) . " ...";
     } else {
      $text = $row["text"] ;
     }
     echo "<td width=\"50%\" height=\"25\" class=\"small\">";
     ?>
     <a href="javascript:showelement('div1')"><? echo $text; ?></a><br />
     <div id="div1" style="border:#FF0000 3px solid; width:300px; display:block;">
     <? echo trim($row["text"]); ?>
     </div>
    .....
    </body>
    </html>
    Nun das Problem. Ich lasse Nachrichteneinträge aus
    der DB lesen und auf verschiedene Seiten Splitten.
    Die Anzhal der Einträge pro Seite wird durch die Variabel '$eintraege_pro_seite' übergeben.
    Rein theoretisch müsste ich doch die Zahl '3' oben
    durch die Variabel '$eintraege_pro_seite' ersetzen
    und das 'div1' durch z.B. 'div[i]' aber leider funktioniert
    es in JS nicht so. Kann mir zufällig jemand weiter helfen,
    denn ich habe nirgends eine Lösung gefunden.

    Gruss und Danke

  • #2
    Nee es ist völlig egal, wieviele Einheiten du pro Seite ausgibst. Das Schema ist doch folgendes:

    einmal das unveränderte Javascript
    dann for ($i=1 bis $proSeite) {
    - Link mit showelement('div$i')
    - Div mit id=div$i
    }

    NICHT div[$i] und an der Javascript-Funktion nichts ändern.

    Kommentar


    • #3
      Danke für die Antwort, ich habe es jetzt wie folgt ausprobiert.
      im Headbereich :
      PHP-Code:
      <script type="text/javascript">
      function 
      showelement (PElementID)
      {
        var 
      ElementID document.getElementById(PElementID);
        if (!
      ElementID) return;
        
      ElementID.style.display = (ElementID.style.display == "none") ? "block" "none";
      }

      function 
      ol_ausblendung ()
      {


        for (
      i=1i<=$eintraege_pro_seitei++)
          
      showelement('div'+i);
      }
      </
      script
      und im Bodybereich :
      PHP-Code:
      if (strlen($row["text"]) > 40)
      {
      $text = substr($row["text"], 0, 40) . " ...";
      } else {
      $text = $row["text"] ;
      }
      echo "<td width=\"50%\" height=\"25\" class=\"small\">";
      ?>
      <a href="javascript:showelement('div$i')"><? echo $text; ?></a><br />
      <div id="div$i" style="border:#FF0000 3px solid; width:300px; display:block;">
      <? echo trim($row["text"]); ?>
      </div>
      Aber egal welche überschrift ich anklicke, es wird immer
      nur die erste Zeile ein- und ausgeblendet.

      Habe ich etwas nicht richtig verstanden ?

      Gruss und Danke

      Kommentar


      • #4
        Habe ich irgend etwas falsch gemacht dass ich
        keine Antwort bekomme, ich denke vielleicht bin ich
        zu blöd aber ich habe es wirklich nicht verstanden.

        Jetzt habe ich auch nach allen mir bekannten Begriffen
        gegoogled und nichts brauchbares gefunden.


        H I L F E !

        Gruss

        Kommentar

        Lädt...
        X