PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Checkboxen in Formular


Hetfield
10.08.2004, 20:31:28
Hallo Leute!

Habe folgendes Problem:

Ich habe ein Formular gebastelt, in dem man etwas zusammenstellen kann. Man wählt z.B. den Typ oder eine Größe über select-felder aus. Bei jeder Auswahl wird das Formular neu geladen und die neuen Werte werden übernommen. Das klappt auch hervorragend. Jetzt habe ich aber in der Zusammenstellung eine Erweiterung vor. Und zwar für Zubehör. Sämtliches vorhandenes Zubehör wird aus einer DAtenbank ausgelesen und mit Checkboxen aufgelistet. Wenn jetzt der User eine Checkbox anklickt, soll das Formular wieder neu geladen werden und das eben angeklickte Zubehör soll checked sein. Klickt man ein weiteres an, soll da gleiche passieren und das vorher gewählte soll weiterhin checked sein. Leider sind bei mir immer alle Checkboxen leer.
Hier der Code:


$SQLString_opt = 'select DISTINCT opt_id, opt_name from optionen_tb, opt_combi_tb where combi_opt_option=opt_id AND combi_opt_groessen = '.$bettgroesse.' AND combi_opt_system = '.$system.' AND combi_opt_modell='.$modell_id.' order by opt_name';
$rs_opt = mysql_query($SQLString_opt,$conn);
echo '<tr bgcolor="#009FEC"><td valign="top" nowrap class="text-standard"><b>Wählen Sie Ihr gewünschtes Zubehör:</b> ';
echo '</td><td valign="top"><table class="text-standard-fett"><tr><td width="192" valign="top">';
$RowCount = mysql_num_rows($rs_opt);

$RowItems = round (($RowCount / 4)+0.5,0);
$RowItemCount = 0;

while ($row_opt = mysql_fetch_array($rs_opt))
{
if ($RowItemCount > $RowItems)
{
echo '</td><td width="192" valign="top" class="text-standard"><b>'.chr(13);
$RowItemCount = 0;
}

echo '<input type="checkbox" name="optionen[]" value="'.$row_opt["opt_id"].'" ';
if ($row_opt["opt_id"]==$_POST["optionen"]){
echo 'checked="checked" ';}
echo 'onClick="self.document.forms[1].submit()">'.
$row_opt["opt_name"].'</b><br>';

$RowItemCount++;
}

echo '</tr></table></td></tr>';



Vielen Dank für Eure Hilfe schon jetzt!!!

Euer Hetfield!

xabbuh
10.08.2004, 22:23:09
Original geschrieben von Hetfield


<?php
echo '<input type="checkbox" name="optionen[]" value="'.$row_opt["opt_id"].'" ';
if ($row_opt["opt_id"]==$_POST["optionen"]){
echo 'checked="checked" ';
}
echo 'onClick="self.document.forms[1].submit()">'. $row_opt["opt_name"].'</b><br>';

?>


Mache das lieber so:

<?php
echo '<input type="checkbox" name="optionen[]" value="'.$row_opt['opt_id'].'" ';
if(in_array($row_opt['opt_id'], $_POST['optionen'])) {
echo 'checked="checked" ';
}
echo 'onClick="self.document.forms[1].submit()">'. $row_opt["opt_name"].'</b><br>';
?>


Hoffe geholfen zu haben.

Hetfield
10.08.2004, 22:55:02
Danke schön!

Hatte zwar eine Lösung gefunden, aber Deine ist bei weitem eleganter und einfacher. Denke heute irgendwie zu kompliziert. (sich vor die stirn klopft) Danke dir vielmals. Funzt einwandfrei!

Hetfield!

xabbuh
10.08.2004, 23:01:57
Original geschrieben von Hetfield
Danke schön!

Hatte zwar eine Lösung gefunden, aber Deine ist bei weitem eleganter und einfacher. Denke heute irgendwie zu kompliziert. (sich vor die stirn klopft) Danke dir vielmals. Funzt einwandfrei!

Hetfield!

Ich hoffe meine Lösung ist auch nachvollziehbar ;-)

Hetfield
10.08.2004, 23:24:29
Ja, ist sie! ;-)
Bin aber mit dem array noch nicht so sehr vertraut. Lerne aber gern und viel dazu. Und hier im Forum bekommt man immer den richtigen Denkanstoss. Eure Tipps und ein gutes Manual haben mir bisher immer geholfen. Hiermit möchte ich mich auch mal bei allen Usern des Forums bedanken. Auch nochmal bei xabbuh für die schnelle Hilfe.

Hetfield!