Hallo und guten Abend,
Nachtrag:
Das liegt daran, dass Checkboxen und Radios nur dann übermittelt werden, wenn etwas ausgewählt wurde.
Da muss man dann serverseitig dafür sorgen, dass bereits ein Default gesetzt ist, der dann durch den gepostetn Wert überschrieben wird.
Ich habe das immer so gelöst, dass ich data, ctrl (Checkboxen und Radios), und btn (alle Submitbuttons) immer durch Namensgruppen im $_POST-Array getrennt habe:
<table border=1 align=center width=70% cellPadding=0 cellSpacing=0>
<tr height=30 align=center>
<td width=10%>1.</td>
<td width=30%>
<label for="anzahl1"/>Anzahl:
<input type="number" name="data[anzahl1]" min="0" max="999" value=13/>
</td>
<td width=60%>
<label for="col1"/>Farbig:
<input type="checkbox" name="ctrl[col1]" value="Color1"/>
</td>
<tr>
</table>
Dann schau Dir das Post-Ergebnis an:
<?php
$out = htmlspecialchars(print_r($_POST,1));
?>
<pre>
<?php echo $out; ?>
</pre>
Dann kann man für jede Namensgruppe spezielle Default und Funktionen bereitstellen.
Manchmal bietet es sich auch noch an, die numerischen Daten auch noch auszugliedern, damit man dort gezielt fragen kann, ob mit 0 oder mit nichts geantwortet wurde.
Grüße
TS