Simon: checkbox verarbeiten-wie?

hi zusammen,

ich habe folgendes Problem (bin ein ziemlicher php-newbie):

ich habe einen msql-request, hab daraus einen array mit 4 werten erzeugt. diese 4 werte lasse ich nun als tabelle anzeigen. die zeile wiederholt sich sooft, bis kein datenbankeintrag vorhanden ist. so weit so gut.

nächster schritt: ich hab diese tabelle in ein formular gesetzt, jede zeile bekommt eine checkbox. so weit auch gut. aber jetzt:

wie bekomme ich den wert der checkbox (yes/no) mit dem tabellenarray kombiniert, dass ich z.B. beim absenden des formulares wieder die tabelle angezeigt bekomme, aber nur mit den angehakten checkboxen?

vlg

simon

  1. Hello,

    wie bekomme ich den wert der checkbox (yes/no) mit dem tabellenarray kombiniert, dass ich z.B. beim absenden des formulares wieder die tabelle angezeigt bekomme, aber nur mit den angehakten checkboxen?

    Ich setze mal voraus, dass die Tabelle der Db einen Primärschlüssel hat

    1. Abfrage lautete also:

    select id, datenspalte from $table where $kriterium;

    Nun gibst Du aus für jede Zeile

    echo   "<input type="checkbox" name="check[$id]" value="checked">", htmlsepcialchars($datenspalte), "\n";

    Wenn der Post aus dem Formular zurückkommt, hast Du ein Array

    $_POST['check'][22] => 'checked';
    $_POST['check'][55] => 'checked';
    $_POST['check'][1013] => 'checked';
    $_POST['check'][1050] => 'checked';

    Daraus kannst Du mit

    $_set = array();

    foreach ($_POST['check'] as $key => $val)
      {
        $_set[] = intval($key);
      }
      $setstr = implode(',',$_set);

    ein Dataset machen und erneut abfragen:

    select id, datenspalte from $table where id in ($setstr);

    und dann wieder ausgeben:

    echo   "<input type="checkbox" name="check[$id]" value="checked" checked>", htmlsepcialchars($datenspalte), "\n";

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. sieht gut aus, vielen dank!!

      zur belohnung gibts eine textkorrektur auf deiner website. dort steht:

      "Die Internmet-Version der Bergpost ist ausschließlich für die private Nutzung...",
      also ein "m" zu viel;-)

      Simon

      1. Hellihello Zsammen,

        bei mir sah es so aus (Toms natürlich für DB optimierter und außerdem dynamischer):

          
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
        <html>  
         <head>  
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
          <title>checkboxen_check</title>  
          <link rel="stylesheet" type="text/css" href="css.css">  
         </head>  
         <body>  
          <form method="get" action="">  
          <p>  
        
        
          
        <?php  
         $checked="";  
         if (isset($_GET["unique_name"]))  
         {  
          $checked='checked="checked"';  
         }  
        ?>  
        
        
          
          unique_name: <input type="checkbox" name="unique_name" <?php echo $checked;?> value="unique_name_value"/>  
          </p>  
          <p>  
        
        
          
        <?php  
         $checked="";  
         if (isset($_GET["array_name"]) && in_array("array_name_value1",$_GET["array_name"]))  
         {  
          $checked='checked="checked"';  
         }  
        ?>  
        
        
          
          array_name_value1: <input type="checkbox" name="array_name[]" <?php echo $checked;?> value="array_name_value1"/>  
        
        
          
        <?php  
         $checked="";  
         if (isset($_GET["array_name"]) && in_array("array_name_value2",$_GET["array_name"]))  
         {  
          $checked='checked="checked"';  
         }  
        ?>  
        
        
          
          
          array_name_value2: <input type="checkbox" name="array_name[]" <?php echo $checked;?> value="array_name_value2"/>  
        
        

        [/code]

          
          </pre>  
         </body>  
        </html>  
        
        

        Dasda eher fürs Prinzip...;

        Dank und Gruß,

        frankx

    2. Hello,

      echo   "<input type="checkbox" name="check[$id]" value="checked" checked>", htmlsepcialchars($datenspalte), "\n";

      Ich sag doch...
      Das ist der Funktionsname, bei dem ich mich am häufigsten verschreibe.
      Ich glaube, ich muss den patchen in meinem PHP

      sc($datenspalte) schreibt sich auch viel schneller *gg*

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      1. super,danke! läuft schon wie geschmiert!!