【问题标题】:Multiple Checkbox not checking after submitting [closed]提交后未检查多个复选框[关闭]
【发布时间】:2013-04-30 05:49:10
【问题描述】:
$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;"

主题: 这个程序运行良好.. 但是当我使用 MORE THAN ONE 复选框提交时,检查的项目不是在CHECKED
只勾选了一项。,提交表单后。&lt;br&gt;&lt;br&gt;

For Example:
当我检查“蓝色”和“红色”颜色时,提交后只检查“红色”颜色。所以我需要这个错误的解决方案。帮帮我!

【问题讨论】:

  • 为什么要将 HTML 更改为 ~~body~~
  • html 标签 此处未使用。所以我用“~~”而不是“”。为什么??
  • 以后本站代码请用四个空格缩进,或者选择代码后直接点击{ }工具栏按钮即可。这将允许它正确显示,即使它包含 HTML 标记。
  • 你可以在这里&lt;html&gt;标签,只需输入你的代码并按Ctrl + K

标签: php validation checkbox


【解决方案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() 这样的函数。我希望这会有所帮助。

【讨论】:

  • 嗨 cabelin!.. 我们不能使用这一步.. if($color=='blue'){ echo "checked"} if($color=='red'){ echo "checked ";} if($color=='green'){ echo "checked";}
  • @SathyaVelan 你的问题是什么意思?以及您可能希望使用该代码实现什么目标?
  • 如果我错了,请纠正我,但您的意思是如果选中了该特定复选框,您想通知用户吗?这就是为什么你要回显 checked 字?我认为这是不必要的,因为看到复选框 checked 是不言自明的 :)
【解决方案2】:

如果您 $color 内容为绿色,这里是检查您的复选框的正确代码

<input type="checkbox" name="color" value="green" <? if($color=='green'){ echo "checked"; }?> />

我认为你在 php 标签之前使用了~~,你已经关闭了输入标签

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多