Einzelnen Beitrag anzeigen
  #9  
Alt 25.03.2009, 11:21:51
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Checkbox-Auswahl in DB speichern

So hab das ganze mal durch gespielt. Die Hiddenfelder kannst du dir sparen. Denkfehler von mir.
Die Checkbox muß wie folgt aufgebaut werden.
PHP-Code:
<?php
//Wenn ich nicht irre ist $lfd_ps_nr die ID bei der erledigt auf 1 gesetzt werden soll
<input type="checkbox" name="Art[]" value="'.$lfd_ps_nr.'">
?>
Die Auswertung muß dann wie folgt aufgebaut werden.
PHP-Code:
if(isset($_POST['save'])) {
$lfd_ps_nr $_POST['Art'];  //hast Recht mit trim()
if(is_array($lfd_ps_nr)) {
foreach(
$lfd_ps_nr as $val) {
    
$nunerledigt="UPDATE projektstufen set erledigt = 1 where lfd_ps_nr = '".$val."'";
    
$erfolg=mysql_query($nunerledigt$db);

    if(isset(
$erfolg))
    { 
        echo 
'jep<br>'
        } else {
        echo 
'bäh<br>';
    }

}
}

Solltest du es vorher mal testen wollen, dann kannst du folgendes Script nutzen:
PHP-Code:
<?php
if(isset($_POST['save'])) {
echo 
'<pre>';
print_r($_POST);
echo 
'</pre>';
$lfd_ps_nr $_POST['art'];
if(
is_array($lfd_ps_nr)) {
foreach(
$lfd_ps_nr as $val) {
$sql "UPDATE projektstufen SET erledigt = 1 WHERE lfd_ps_nr = '".$val."'";
echo 
$sql.'<br>';
}
}
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
erledigt 1 <input type="checkbox" name="art[]" value="1"><br>
erledigt 2 <input type="checkbox" name="art[]" value="2"><br>
erledigt 3 <input type="checkbox" name="art[]" value="3"><br>
erledigt 4 <input type="checkbox" name="art[]" value="4"><br>
erledigt 5 <input type="checkbox" name="art[]" value="5"><br>
erledigt 6 <input type="checkbox" name="art[]" value="6"><br>
erledigt 7 <input type="checkbox" name="art[]" value="7"><br>
erledigt 8 <input type="checkbox" name="art[]" value="8"><br>
erledigt 9 <input type="checkbox" name="art[]" value="9"><br>

<input type="submit" name="save" value="Speichern">
</form>
In dem Testscript ist "art" klein geschrieben!

EDIT: Kurz zur Erklärung. Da Checkboxen nur übermittelt werden, wenn sie auch angehakt sind muß ihnen auch die ID als Wert mitgegeben werden, auf der das Update laufen soll. Hätte man das Script auf die per hidden übergebenen psnr laufen lassen, würde alle Einträge auf erledigt gesetzt werden, da ja alle Hiddenfelder übermittelt werden. Dieses sollte aber nicht Sinn der Checkboxen sein.
Hatte wohl gestern einen Knoten im Kopf.

Geändert von urvater (25.03.2009 um 11:28:01 Uhr)
Mit Zitat antworten