Anzeige:
Ergebnis 1 bis 3 von 3

Thema: JS: getElementsByName auf alle elemente zugreifen

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.08.2005
    Beiträge
    14

    JS: getElementsByName auf alle elemente zugreifen

    EDIT: hat sich schon geklärt! habe statt 'getElementsByName' 'getElemntsByName' geschrieben und kam einfach nicht drauf!!
    danke für die aufmerksamkeit!

    seas;
    folgendes script erstellt eine liste mit vokabeln die aus einer datei ausgelesen werden. neben dem deutschen wort ist ein button "show" wenn man ihn klick wird das deutsche wort angezeigt.
    oben (oder irgendwo) sollte nun ein button sein der bei betätigung alle deuschen wörter anzeigt. nun habe ich das problem das dieser button einfach nichts tut!
    hier das script:

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang=de>
    <head>
    <body>
    <?php
    // arraycount
    $count=0;
    $tree = dir("lessons");
    
    while ($data = $tree->read())
    {
      $count++;
    }
    $filenumber = ($count - 1);
    
    //shwo selected lessons
    $counted = count($HTTP_POST_VARS["selected"]) + 1;
    
    for($i=1; $i < $filenumber; $i++)
    {
      if (isset($HTTP_POST_VARS["selected"][$i]))
      {  
      $file = $HTTP_POST_VARS["selected"][$i];
      $fp = fopen("./lessons/$file","r");
      echo $HTTP_POST_VARS["selected"][$i].'<br>';
      echo '<table border="1">';
      echo '<tr><th>italien</th>';
      echo '<th>german</th></tr>';
      $zeile = fgets($fp, 1000);
      $arzeile = explode(';', $zeile);
      if($fp)
      {
        while(!feof($fp))
        { //read line   
          $zeile = fgets($fp, 1000);
          $arzeile = explode(';', $zeile);
          //replace \n in order to get a correct JS-code
          $arzeile[1] = str_replace("\n", "", $arzeile[1]);
          // replace " " , - ... ? ! ( ) . in the germen = [1] array
          $rezeile[1] = str_replace(" ", "_", $arzeile[1]);
          $rezeile[1] = str_replace(",", "", $rezeile[1]);
          $rezeile[1] = str_replace("-", "", $rezeile[1]);
          $rezeile[1] = str_replace("...", "", $rezeile[1]);
          $rezeile[1] = str_replace("?", "", $rezeile[1]);
          $rezeile[1] = str_replace("!", "", $rezeile[1]);
          $rezeile[1] = str_replace(")", "", $rezeile[1]);
          $rezeile[1] = str_replace("(", "", $rezeile[1]);
          $rezeile[1] = str_replace(".", "", $rezeile[1]);
          
          //echo js code
          echo '<script type="text/javascript">';
          echo 'function show'.$rezeile[1].'()';
          echo '{';
          echo 'document.getElementById("'.$rezeile[1].'").style.visibility = "visible";';
          echo '}';
          echo '</script>';
          // echo words 
          echo '<tr><td>'.$arzeile[0].'</td>';
          echo '<td id="'.$rezeile[1].'" name="german" style="visibility: hidden;">'.$arzeile[1].'</td><td><input type="button" name="'.$rezeile[1].'" value="show" onclick="show'.$rezeile[1].'();" /></td></tr>';
        }
      fclose($fp);
      }
      }
    }
    ?>
    
    <script type="text/javascript">'
    function showallgerman()
    {
      for (i = 0; i < window.document.getElementsByName("german").length; i++)
      {
      window.document.getElemntsByName("german")[i].style.visibility = "visible"; 
      }
    }
    </script>
    <input type="button" name="showallgerman" value="show all german" onclick="showallgerman();" />
    </table><br>
    </body>
    </html>
    kann mir wiedermal jmd weiterhelfen; bin noch PHP und JS anfänger

    cu
    CHristoph
    Geändert von zaunmayrchris (25-09-2005 um 00:40 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo zaunmayrchris,

    das "name"-Attribut darf nicht in einem td-Tag vorkommen

    getElementsByName() - Selfhtml

    Siehe:
    http://www.mrunix.de/forums/showthre...ElementsByName

    Gruß nEox

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.08.2005
    Beiträge
    14
    danke für die antwort;
    mhh... laut selfhtml darf "name" wirklich nicht in <td> verwendet werden :-( allerdings funktioniert das skript nach rechtschreibfehlerausbesserung einwandfrei;
    ich verwende allerdings firefox; könnte es sein das die seite in anderen browsern nicht richtig dargestellt wird? (z.b.: in IE)

    cu
    CHristoph

    EDIT:
    so hab wieder mal windows angeworfen; funktioniert wirklich nicht mit IE; das wär mich ja auch egal gewesen; aber mit opera funktionierts auch nicht :-(
    Geändert von zaunmayrchris (25-09-2005 um 08:46 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •