Anzeige:
Ergebnis 1 bis 4 von 4

Thema: checkbox auswerten

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

    checkbox auswerten

    so; auch wenn es peinlich ist, aber ich rätsle nun schon stundenlang und komme nicht drauf wie ich mein problem lösen kann; darum frage ich wieder mal hier nach:

    mit folgendem skript lese ich die dateinamen eines ordners aus und stelle sie mit einer checkbox versehen dar:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang=de>
    <head>
    <body>
    <form method="post" action="show.php" enctype="multipart/form-data">
    <?php
    // arraycount
    $count=0;
    $tree = dir("lessons");
    
    while ($data = $tree->read())
    {
      $count++;
    }
    $filenumber = ($count - 2);
    
    
    // dir
    $folder = opendir("lessons");
    $number = array();
    
    while ($file = readdir ($folder)) 
    {
      if ($file != "." && $file != "..") 
      {
        echo '<p><input type="checkbox" name="'.$file.'" value="1">'.$file.'</p>';
      }
    }
    
    echo '<input type="submit" name="submit" value="show">'
    
    ?>
    
    </form>
    </body>
    </head>
    btw: oben wird auch noch die anzahl der datein im ordner berechnet!

    soweit so gut; das funktioniert noch. mit name="'.$file.'" wird der checkbox auch der richtige name zugewiesen (schaut in html dann so aus: name="20.9.05" --20.9.05 ist einfach ein dateiname)

    nun möchte ich in der datei show.php die ausgewählten dateien anzeigen lassen:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang=de>
    <head>
    <body>
    <?php
    if (isset($HTTP_POST_VARS['$file']))
    {
      echo $HTTP_POST_VARS['$file'];
      echo 'test';
    }
    ?>
    </body>
    </html>
    das mit dem datei auslesen müsste ich dann schon schaffen; mein problem bis jetzt ist noch das auch wenn ich alle checkboxen anhacke ich in der show.php keine einzige ausgabe bekomme.
    statt $HTTP_POST_VARS['$file'] hab ich auch schon $HTTP_POST_VARS[$file] und $HTTP_POST_VARS["$file"] probiert; funktioniert alles nicht!
    weiß jmd vllt was ich anders machen muss / wie ich mein problem lösen kann;
    ich hoffe ich erwecke nicht den anschein das ich bei jedem *cheiß gleich um hilfe rufe; aber ich hab wirklich schon selber (auch mit suchmaschinen und büchern) probiert mein problem zu lösen, leider hatte ich dabei als programmier und php anfänger keinen erfolg.

    cu
    CHristoph

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.08.2002
    Beiträge
    496
    ich würde dir eine andere vorgehensweise empfehlen, weil du mit name eine nicht kontrollierbare situation hervorrufst.

    verwende lieber so ein konstrukt:

    Code:
    echo '<p><input type="checkbox" name="file[]" value="'.$file.'">'.$file.'</p>';
    dann müsste in
    $_POST[file]
    ein array drin sein...

    greetz

    ps: habe so ein konstrukt mal verwendet als globals noch on waren... aber ein versuch ist es wert

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

    gib dir doch mal $HTTP_POST_VARS mit print_r() aus. Würde dir auch die Methode von quinte17 empfehlen.

    @quinte17
    Ja $_POST["file"] (bzw. $HTTP_POST_VARS) ist dann korrekt.

    Gruß,

    nEox

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.08.2005
    Beiträge
    14
    so; hab es nun dank eurer hilfe so gelöst:
    dir.php:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang=de>
    <head>
    <body>
    <form method="post" action="show.php" enctype="multipart/form-data">
    <?php
    // arraycount
    $count=0;
    $tree = dir("lessons");
    
    while ($data = $tree->read())
    {
      $count++;
    }
    $filenumber = ($count - 2);
    
    
    // dir
    $folder = opendir("lessons");
    $file = array();
    $i = 1;
    while ($file = readdir ($folder)) 
    {
      if ($file != "." && $file != "..") 
      {
        echo '<p><input type="checkbox" name="selected['.$i.']" value="'.$file.'">'.$file.'</p>';
        $i++;
      }
    }
    echo '<input type="submit" name="submit" value="show">';
    echo '<input type=hidden name=file value="'.$file.'">'
    
    ?>
    
    </form>
    </body>
    </head>
    und die show.php:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang=de>
    <head>
    <body>
    <?php
    //shwo selected lessons
    $counted = count($HTTP_POST_VARS["selected"]) + 1;
    
    for($i=1; $i < $counted; $i++)
    {
      
      $file = $HTTP_POST_VARS["selected"][$i];
      $fp = fopen("./lessons/$file","r");
      echo $HTTP_POST_VARS["selected"][$i].'<br>';
      echo '<table border="1">';
      echo '<colgroup width="280" span="2"></colgroup>';
      echo '<tr><th>italienisch</th>';
      echo '<th>deutsch</th></tr>';
      $zeile = fgets($fp, 1000);
      $arzeile = explode(';', $zeile);
      if($fp)
      {
        while(!feof($fp))
        {    
          $zeile = fgets($fp, 1000);
          $arzeile = explode(';', $zeile);
           echo '<tr><td>'.$arzeile[0].'</td>';
          echo '<td>'.$arzeile[1].'</td>';
        }
      echo '</table><br>';
      fclose($fp);
      }
    }
    ?>
    </body>
    </html>
    in der dir.php kann man auswählen welche dateien angezeigt werden sollen; und in der show.php werden die daten der datei dann in einer tabelle angezeigt.

    cu
    CHristoph

Lesezeichen

Berechtigungen

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