Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Checkboxes dynamisch auswerten [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Checkboxes dynamisch auswerten


 
chefkochbln
17-08-2005, 13:59 
 
....genau das ist mein Problem, was mich schon seit einiger Zeit beschäftigt:

Szenario ist folgendes:
Ich habe eine HTML-Seite, welche aus ca. 30 Checkboxen besteht. Diese Checkboxen können alle angeklickt werden, oder auch nur einige oder auch nur eine oder keine.

Das Ganze schicke ich an eine .php-Datei und werte das Ganze dann aus. Klingt eigentlich einfach, ist aber für mich irgendwie komplett undurchschaubar.
Zudem soll eine Variable geschrieben werden, in der bei jeder nicht angeklickten Checkbox eine "0" geschrieben und bei jeder aktivierten Checkbox eine "1" geschrieben werden soll, so dass ich dann diese Nummer in die DB speichern kann.

Ich hätte dann also als Beispiel eine Variable $var mit dem Wert 011000000000000000000000000000.

Anhand dieser Ziffer kann ich dann mittels switch...case herausfinden, welche Kategorie sich dahinter verbirgt.
Bisher habe ich:


<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="auswert.php"> <p>
<input type="checkbox" name="checkbox[0]" value="1"> Test1 <br>
<input type="checkbox" name="checkbox[1]" value="1"> Test2<br>
<input type="checkbox" name="checkbox[2]" value="1"> Test3<br>
<input type="checkbox" name="checkbox[3]" value="1"> Test4<br>
<input type="checkbox" name="checkbox[4]" value="1"> Test5 </p>
<p> <input type="submit" name="Submit" value="Senden"> </p>
</form>
</body>
</html>


Die dazugehörige PHP-Datei:

<?php
for ($i = 0; $i<=5; $i++) {
if (isset($_POST['checkbox'][$i])) {
echo "Checkbox ".($_POST['checkbox'][$i])." ist angeklickt.";
} else
echo "Checkbox ".($_POST['checkbox'][$i])." ist NICHT angeklickt.";
}
?>


Das habe ich bisher geschafft....ist nicht viel, bisher wollte ich mir ausgeben lassen, welche Checkbox angeklickt und welche es nicht ist, aber das klappt nicht.
Wieso nicht, könnt ihr mir helfen?? Wäre supernett......ich verzweifel langsam

 
penizillin
17-08-2005, 14:11 
 
was heißt "klappt nicht"?
zeig mal print_r($_POST).

 
Shurakai
17-08-2005, 14:14 
 
hast du dir das ganze schonmal mit einem print_r($_POST) angesehen? dann siehst du auch was gesetzt ist und was nicht...

 
heddesheimer
17-08-2005, 14:18 
 
Versuch's mal damit:
<?php
for ($i = 0; $i<5; $i++) {
if (isset($_POST['checkbox'][$i])) {
echo "Checkbox ".$i." ist angeklickt.<br>";
} else
echo "Checkbox ".$i." ist NICHT angeklickt.<br>";
}
?>

Gruß Marian

 
chefkochbln
17-08-2005, 14:36 
 
Hier ist die Ausgabe. Was mich verwundert ist, dass es jetzt komischerweise klappt.....

Array ( [checkbox] => Array ( [0] => 1 [1] => 1 ) [Submit] => Senden )

Und ich hatte Checkbox 1 und 2 angeklickt.
Hm, danke - wofür auch immer *lach*

Aber jetzt hätte ich immer noch das Problem, dass ich ja die Zahl (sozusagen) als Ganzes haben möchte, also wenn ich 1 und 2 anklicke und 3-5 nicht, dann sollte 11000 herauskommen - in einer Variable gespeichert...oder hätte ich das dann schon?

 
mrhappiness
17-08-2005, 14:50 
 
Erstelle dir einen String, der aus so vielen Nullenbesteht, wie du checkboxen im Formular angezeigt hast.

Dann arbeitest du $_POST['checkbox'] ab, ist $_POST['checkbox'][$i] gesetzt, schreibst du in $string{$i} eine 1

 
chefkochbln
17-08-2005, 15:09 
 
:huep:

Yo, supi!!!! Hat geklappt, dankeschön!!!!!!!!!!!!

 
DanielV.
11-08-2007, 13:29 
 
Hallo zusammen ich habe ein ähnliches problem. nur werden die Checkboxen bei mir auch dynamisch generiert.

Folgender Code generiert die Checkboxen:


$usertest= odbc_result($sql_logcheck,"user_id");
$sql_query = "select * from user_reports where user_idref = '$usertest'";
$sql_result = odbc_exec($con, $sql_query);
echo "<form action='report.php?mode=6' method='post'>";

while(odbc_fetch_row($sql_result))
{

echo '<input type="checkbox" value='.odbc_result($sql_result,"report_id").' name="report[]" />';

}

echo '<input type="submit" name="create" value="'.$TEXT['report-create'].'"/><input type="submit" name="delete" value="'.$TEXT['report-delete'].'"/>';
echo '</form>';



Folgender Code soll die Checkboxen auswerten:
for ($i = 0; $i<10; $i++) {
if (isset($_POST['report'][$i])) {
echo "Checkbox ".$i." ist angeklickt.<br>";
} else
echo "Checkbox ".$i." ist NICHT angeklickt.<br>";
}


Könnt ihr mir helfen? Es werden maximal 10 Checkboxen angezeigt

 
penizillin
11-08-2007, 16:33 
 
Es werden maximal 10 Checkboxen angezeigt for ($i = 0; $i<10; $i++) hm... mal scharf überlegen...


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:32 Uhr.