虽然我还没有测试过,但像这样的东西应该可以工作:
PHP:
<?php
$inputs = \'<ul class="checkbox-columns">\';
foreach($subjects as $subject){
$inputs .= \'<li><label><input type="checkbox" name="subjects[]" value="\' . $subject[\'subject\'] . \'"/>\' . $subject[\'subject\'] . \'</label></li>\';
}
$inputs .= \'</ul>\';
echo $inputs;
CSS:
.checkbox-columns {
width: 200px;
}
.checkbox-columns li {
display: block;
float: left;
width: 50%;
}
这将创建一个名为
$inputs
包含带开口的字符串
<ul>
CSS类为的标记
.checkbox-columns
. 然后它在
$subjects
并附加一串列表项(
<li>
) 包含输入(其值属性和标签文本设置为
$subject[\'subject\']
) 到
$inputs
变量最后,当循环完成时,它会附加一个结束符
</ul>
标记和
echo
输出生成的HTML字符串。
然后,您可以根据需要使用一些CSS设置输出样式。
关于您发布的代码的一些注释:
- ,而不是只使用双引号(例如
"
), 如果在单引号和双引号之间交替使用(例如"
和\'
). 也不需要以这种方式转义HTML属性的引号在foreach
参数,AS
应为小写我把整个包好了<input />
a中的标记<label>
标签这允许您在HTML中添加标签文本,而不是将其转储到随机文本节点中取决于$subjects
数组来自您应该强烈考虑的Sanitizing the output.