Checkboxen zählen

expansioN

Mitglied
Hey @ all

Jaaa ich weiß, mittlerweile ein eher leidiges Thema, aber ich werd aus den Antworten leider nicht wirklich schlau, eine Erklärung wäre am besten.
Ich hoffe ihr könnt einem PHP-Anfänger etwas helfen.

Also ich habe in einem Formular mehrere Checkboxen, insgesamt (leider) etwas über 100. Die sind in unterschiedlich großen Blöcken geordnet. Also einmal 8 Checkboxen, dann wieder 3, usw....
Nun möchte ich die aktivierten Checkboxen der Blöcke zählen und dann ausgeben ala

Block1: 50% ausgewählt
Block2: 0% ausgewählt
Block3: .....

Ich hab zwar im Internet ein paar Tipps und Anleitungen gefunden, wurde aber wie gesagt nicht wirklich schlau daraus. Wie löse ich das am Besten? Wie das letzendlich ausgegeben wird ist mir relativ egal. :)
Hoffe ihr könnt mir helfen.

lg
 
Also ohne es jetzt zu probieren wirst du wohl pro Block z.B. ein verstecktes Feld anlegen müssen in dem die Anzahl Checkboxen eingetragen ist.

Wird das Formular abgeschickt, werden ja nur die Checkboxen als Array (?) übertragen die auch markiert sind. Diese Anzahl kannst du dann mit der count Funktion ermitteln.

Gruß Thomas

NACHTRAG: Nicht schön aber es sollte helfen die Sache zu erklären.

PHP:
<form name="form" action="test.php" method="post" enctype="text/html">
<input type="hidden" name="anzahl" value="4" />

<input type="checkbox" name="check[]" value="1" checked="checked" />
<br />
<input type="checkbox" name="check[]" value="2" checked="checked" />
<br />
<input type="checkbox" name="check[]" value="3" checked="checked" />
<br />
<input type="checkbox" name="check[]" value="4" checked="checked" />
<br />
<input type="Submit" name="send" value="Save" />
</form>

<?php
if (isset($_POST["send"])) {
echo "Es wurden " .count($_POST["check"]) ." von " .$_POST["anzahl"] ." Checkboxen markiert<br />";
echo "Dies entspricht " .((count($_POST["check"]) / $_POST["anzahl"]) * 100) ."%";
}

?>
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort. Ich werds probieren und meld mich dann nochmal, obs geklappt hat oder nicht ;)

EDIT: Danke hat geklappt, auch wenn es etwas umständlicher ist.
 
Zuletzt bearbeitet:
Zurück