PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Checkboxen auswerten & vorbereiten für MySQL-DB


PHP-FuZzY*
30.10.2002, 11:34:56
Hallökes,

hab folgendes Prob. Ich hab in einer HTML-Dat. ein Form, indem u.a. auch 16 Checkboxen vorhanden sind. Diese checkboxen haben beim name-Attribut alle den gleichen Namen. Hier ein kurzer Ausschitt:

***
:
:
<input type="checkbox" name="fschein[]" class="checkbox" value="A1">A1<br>
<input type="checkbox" name="fschein[]" class="checkbox" value="A">A<br>
<input type="checkbox" name="fschein[]" class="checkbox" value="B" checked>B<br>
<input type="checkbox" name="fschein[]" class="checkbox" value="BE">BE
:
:
***

Wie man sieht, sind einige schon vorselektiert.

Das ganze form wird dann per POST-Befehl an eine php-Dat. geschickt, die dat ganze im folgenden Sinne verarbeiten soll:

Die values aller gecheckten checkboxen sollen im Format
--> Wert1,Wert2,...,Wertn <--
in einer MySQL-DB in !einem! Feld vom Typ "set" gespeichert werden.
Jetzt hab ich erstmal sämtlich Foren und Seiten durchsucht, um überhaupt erstmal aus der Variable $fschein[] die einzelnen Werte auszulesen und per echo-Befehl auszugeben. Da habe ich folgendes gefunden:

***
foreach($fschein as $key) echo $key."<br>";
***

Die function foreach soll die einzelnen Felder des Array auslesen, solange bis se beim letzten Feld angekommen ist.

Statt dies zu machen, bekomm ich folgende Fehlermeldung:

"Warning: Invalid argument supplied for foreach() in c:/apache/apache/htdocs/persdat/newentry_func.php"

Mit der kann ich ja überhaupt nix anfangen. Bin PHP-Neuling...

Kann mir da irgendjemand weiterhelfen???

Das ganze läuft auf:

Apache 1.3.20 (Win32)
PHP 4.0.4pl1
Win 98se


Für schnelle Hilfe wäre ich dankbar!


PHP-FuZzY*

Damir
30.10.2002, 13:19:18
Hi,
es liegt daran, dass kein Array vorhanden ist. Nicht aktivierte Checkboxen innerhalb Deines Formulars werden nicht uebertragen. Dieser Fehler tritt sicherlich nur dann auf, wenn nur eine Checkbox aktiviert ist.
Bei Checkboxen wuerde ich die Methode des Arrays nicht unbedingt nutzen.
Bye Damir

PHP-FuZzY*
30.10.2002, 13:26:32
...egal ob eine checkbox, 2.., 3.. oder gar keine ausgewählt ist. Du schreibt, du würdest da nicht mit arrays arbeiten.
was gibt es denn für eine alternativ-lösung
für:
"multiple choice werte sollen vom form an die verarbeitende php gepostet werden. diese soll die werte dann in einem datenbank-feld vom typ set gespeichert werden." ?

Für deine Hilfe wäre ich dankbar.


Gruß,
PHP-FuZzY*

Damir
30.10.2002, 14:12:59
Hi,
das Problem ist ja eher die Array-Verschiebung, sobald eine Checkbox nicht aktiviert wird.
Um dynamische Checkboxen zu generieren koennte man z.B folgenden Code nutzen:


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="index.php">
<?PHP
for($x=0;$x<5;$x++){
?>
<input type="checkbox" name="checkbox<?PHP echo $x; ?>" value="checkbox<?PHP echo $x; ?>wert">
<?PHP
}
?>
<input type="hidden" name="checkboxen" value="<?PHP echo $x; ?>">
<input type="submit" name="Abschicken" value="Abschicken">
</form>
<br><br>
<?PHP
for($x=0;$x<$checkboxen;$x++){
$string = checkbox . $x;
if(empty($$string))
echo 'LEER<br>';
else
echo $$string . '<br>';
}
?>
</body>
</html>


Bye Damir