Hallo hande,
folgendes prob.: ich hab 20 checkboxes, die ich, vor eintrag in die db in eine variable packe:
..type="checkbox" name="attribut[]" value="wert_1">
..type="checkbox" name="attribut[]" value="wert_2">
Das würde ich schon anders anfangen:
for ($i = 0; $i < 20; $i++) {
echo '... value="'.pow(2,$i).'">';
}
oder wie auch immer Du Deine Checkboxen erzeugst.
Damit erhälst Du dann eine Reihe von 2hochX.
[...]
$attribute = $_POST['attribut'];
$attribute = implode(',',$attribute);dann:
INSERT INTO (..., attribute) VALUE (...., '$attribute');
Die übermittelten Werte brauchst Du nun nur addieren, und in Deine Spalte schreiben. Falls also 2,8 und 16 übertragen werden (Checkbox 2, 4 und 5 angeklickt), ergibt das 26.
[...]
also dacht ich mir ich mach ein explode(",",attribute):
$query = "SELECT * FROM table_name WHERE .....";
$data= mysql_fetch_row(mysql_query($query));...und $data[6] hat nun den attribut string:
$exp_attributes = explode(",",$data[6]);
$wert_1= $exp_attributes[0];
$wert_2= $exp_attributes[1];
..
das ist natürlich blödsinn, mußte ich feststellen :(
Klar, weil so in $wert_2 durchaus auch 'wert_3' stehen kann, da die nicht angeklickten Checkboxen beim Ansenden des Formulars nicht übermittelt werden.
uhmmmm..aber wie jetzt weiter ?? es müßte eine if-abfrage kommen
bei den checkboxes ungefähr so:
<? if($wert_1 == "wert_1") echo "checked"?>
<? if($wert_2 == "wert_2") echo "checked"?>aber ich weiß jetzt irgendwie nicht mehr weiter....
vielleicht wäre es besser schon beim speichern in der db die attribute in passende spalten zu packen.. aber wie ??
s.o.
Die Abfrage ob eine Checkbox markiert werden soll geht mit einer bitweise Undverknüpfung der entsprechenden 2er-Potenz der Checkbox mit dem gespeicherten Wert.
$i = 4; // 5te Checkbox
echo $data[6] & pow(2,$i) ? 'checked' : '';
/* Wenn das bitweise UND ungleich Null ist, dann wird die Checkbox markiert */
HTH :)
Gruß Alex
>> Dass in eine if Schleife zu packen schafft mein 10 jähriges Patenkind. [...]
> Mhhh, wenn man if in Schleifen packt, muss man sich auch nicht wundern, wenn die Patenkinder verwöhnte Luder werden. [...]
[TomIRL und Tom in ?t=64084&m=364291]
ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}