Mailinglisten-Archive |
Egbert Engel schrieb am Mittwoch, den 28. Juli 1999: > Ich möchte mir zu einzelnen Treffern eine Detailansicht anzeigen lasssen, > wenn sie mit einer Checkbox markiert sind, also > <? > if($action=="los"){ > for($i=0; $i<count($show); $i++){ > if($show[$i]==$i) > echo($i." ist aktiviert.<br>\n"); > } > } > else{ > echo("<form action=\"$PHP_SELF\" method=POST>"); > for($i=0; $i<10; $i++) > echo("<input type=\"checkbox\" name=\"show[]\" > value=\"$i\"><br>\n"); > echo("<input type=submit name=\"action\" value=\"los\">"); > echo("</form>"); > } > ?> > Allerdings existieren die Feld-Elemente nur bei aktivierter checkbox, so > daß das immer schiefgehen wird, wenn nicht alle aktiviert sind :-( Ich glaube, Dein Logikfehler wird Dir an einem Beispiel klar werden. Nimm mal an, das Formular wäre statisch und sähe so aus: <FORM ACTION="check.php3" METHOD="POST"> <INPUT TYPE="checkbox" NAME="show[]" VALUE="audi"><BR> <INPUT TYPE="checkbox" NAME="show[]" VALUE="bmw"><BR> <INPUT TYPE="checkbox" NAME="show[]" VALUE="porsche"><BR> <INPUT TYPE="checkbox" NAME="show[]" VALUE="vw"><BR> <INPUT TYPE="submit" NAME="action" VALUE="los"> </FORM> Wenn man nun nur "audi" und "vw" auswählt und dann abschickt, werden die Formulardaten so zusammengebaut: show[]=audi&show[]=vw&action=los Auf der Seite "check.php3" werden daraus dann PHP-Variable: - ein Array $show mit $show[0]=='audi' und $show[1]=='vw' - eine einfache Variable $action=='los' Du hattest also die Checkbox-Values auf der einen Seite mit dem Array-Indizes von $show auf der anderen Seite durcheinandergeworfen. Ändere Deinen Code z.B. so: if($action=="los"){ for($i=0; $i<count($show); $i++){ echo($show[$i]." ist aktiviert.<br>\n"); } } Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ > PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7
php::bar PHP Wiki - Listenarchive