$color="";<br>
$sel4="";<br>
$suc="";<br>
if(isset($_POST['save'])) <br>
{<br>
$e="0";<br>
if(isset($_POST['color']))<br>
{<br>
$color=$_POST['color'];<br>
}<br>
else<br>
{<br>
$sel4="<--Check Any Color";<br>
$e="1";<br>
}<br>
if($e==0)<br>
{<br>
$suc="Success";<br>
}<br>
}<br>
?><br><br><br>
~~body~~<br>
~~form method="POST"~~<br>
~~table~~<br>
~~tr~~<br>
~~td~~<br>
color<br>
~~/td~~<br>
~~td~~<br>
~~input type="checkbox" name="color" value="blue" ~~? if($color=='blue'){ echo "checked"; }?> /><br>Blue<br>
~~input type="checkbox" name="color" value="red" ~~? if($color=='red'){ echo "checked"; }?> /><br>Red<br>
~~input type="checkbox" name="color" value="green" ~~? if($color=='green'){ echo "checked"; }?> />Green<br>
~~input type="checkbox" name="color" value="yellow" ~~? if($color=='yellow'){ echo "checked"; }?> />Yellow<br>
~~/td~~<br>
~~td~~?=$sel4;?~~<br>
~~/tr~~<br>
~~tr~~<br>
~~td colspan="3"~~<br>
~~input type="submit" name="save"~~<br>
~~/td~~<br>
~~?=$suc?~~<br>
~~/tr~~<br>
~~/table~~<br>
~~/form~~<br>
~~/body~~<br>
<br><br><br>
注意: html标记&lt;&gt;这里没用过。所以我用"~~"
代替"<>"
。
主题:此程序运行正常..但是当我提交超过一个复选框时,选中的项目不在CHECKED
。
在提交表格后,只检查了一个项目。<br><br>
For Example:
当我检查“蓝色”和“红色”颜色时,它在提交后仅选中“红色”颜色。所以我需要这个错误的解决方案。帮助我!
答案 0 :(得分:1)
您应该将复选框声明为数组
<input type='checkbox' name='color_list[]' value="red">
<input type='checkbox' name='color_list[]' value="blue">
<input type='checkbox' name='color_list[]' value="green">
这样一旦你得到它$_POST['color_list']
,你就会选择一系列颜色。你可以这样做:
$colors_selected = $_POST['color_list'];
然后只使用像implode()
这样的函数。我希望这会有所帮助。
答案 1 :(得分:0)
如果您$color
内容为绿色
<input type="checkbox" name="color" value="green" <? if($color=='green'){ echo "checked"; }?> />
我认为你在php标签之前使用~~
已经关闭了输入标签