phpbar.de logo

Mailinglisten-Archive

[php] Re: Checkboxauswahl in Array speichern

[php] Re: Checkboxauswahl in Array speichern

Martin Ramsch m.ramsch_(at)_computer.org
Wed, 28 Jul 1999 09:24:44 +0200


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