Php 复选框“选定属性集”(不考虑值)
在家里试试这个:Php 复选框“选定属性集”(不考虑值),php,html,browser,Php,Html,Browser,在家里试试这个: 编写表单以显示PHP中的复选框列表: $checkboxes = array('one' => 1, 'two' => 2, 'three' => 3); $html = "<html><body><form name=\"myForm\" action=\"this\" method=\"post\"><ul>Check Test"; foreach ($checkboxes as $id => $va
编写表单以显示PHP中的复选框列表:
$checkboxes = array('one' => 1, 'two' => 2, 'three' => 3);
$html = "<html><body><form name=\"myForm\" action=\"this\" method=\"post\"><ul>Check Test";
foreach ($checkboxes as $id => $value)
{
$checkVal = (isset($_POST['check_test'][$id])) ? 'true' : 'false';
$checkList = "<li><input type=\"checkbox\" name=\"check_test[]\" id=\"$id\"
value =\"$value\" checked=\"$checkVal\" />$name = $value</li>\n";
}
$checkList .= "<input type=\"submit\" value=\"Submit\">";
echo $html.$checkList."</ul></body></html>";
$checkbox=array('1'=>1,'2'=>2,'3'=>3);
$html=“检查测试”;
foreach($id=>$value的复选框)
{
$checkVal=(isset($_POST['check_test'][$id])?'true':'false';
$checkList=“- $name=$value
\n”;
}
$checkList.=”;
echo$html.$checkList.“
”;
您会发现,无论您在$checkVal分配中输入了什么,当您点击提交时,您的复选框都将被选中。我的解决方法是扩展$checkVal变量,将整个“checked=”状态设置为某物或无。我只是惊讶于Firefox(更确切地说,是Iceweasel)只查看属性是否已设置。如果设置的任何内容都不相关,为什么还要设置它
查看源html。所选属性将显示您放入checkval变量中的任何内容。DOM规范说明:
checkboxObject.checked=true | false
以下是我的输出:
<ul><li><input type="checkbox" name="check_test[]" id="one"
value ="1" checked="false" />one= 1</li>
<li><input type="checkbox" name="check_test[]" id="two"
value ="2" checked="false" />two= 2</li>
<li><input type="checkbox" name="check_test[]" id="three"
value ="3" checked="false" />three= 3</li>
- one=1
- 二=2
- 三=3
瞧!每个框都被选中。与我在html中明确表示的相反。将忽略false。如果check属性存在,则复选框将被选中
foreach ($checkboxes as $id => $value)
{
$checkVal = (isset($_POST['check_test'][$id])) ? 'checked="checked"' : '';
$checkList = "<li><input type=\"checkbox\" name=\"check_test[]\" id=\"$id\"
value =\"$value\" ".$checkVal." />$name = $value</li>\n;
}
foreach($id=>$value的复选框)
{
$checkVal=(isset($\u POST['check\u test'][$id])?'checked=“checked”:'';
$checkList=“$name=$value \n;
}
正如我在文章中提到的:“我的解决方法是展开$checkVal变量,将整个“checked=”状态设置为某物或无。“[br]我只是想指出,为什么要有一个“相等”的属性“在DOM中表示无意义的数据吗?没有其他输入属性以这种方式运行。这是一个糟糕的设计,也是一个让人不必再多写2-3行代码的麻烦。Selected不是唯一一个,这是一个更像它的数字。例如是的,它看起来有点糟糕,但我认为它更像是旧浏览器的兼容性问题。对于大多数浏览器,您只需编写selected即可,但如果所有标记属性都以相同的方式显示name=“value”。啊哈,谢谢您的澄清。当我写完我的文章时,我突然想到这可能都是浏览器不兼容造成的。我主要是运行IceWeasel,它应该是Mozilla 5,但它有它的调整和连接。谢谢你的意见!不客气。如果现在一切都清楚了,那么接受问题的答案以结束话题是礼貌的。