我如何将结果拆分成两列

时间:2018-03-30 作者:DHW

如何将结果拆分为两列?

        foreach($subjects AS $subject){
        echo "<input type=\\"checkbox\\" name=\\"subjects[]\\" value=\\"".$subject[\'subject\']."\\">\\x20".$subject[\'subject\']."<br \\>";
        }

1 个回复
最合适的回答,由SO网友:DaveLak 整理而成

虽然我还没有测试过,但像这样的东西应该可以工作:

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.

结束