我想从MySQL数据库写出复选框的详细信息。复选框结构应该看起来像6 * 6平方。 (6列一列,6列一列)。
MySQL数据库看起来像:
|id|package|
|1 |HEI |
|2 |TAG |
|...|
我写了这个函数(在php中)
function getPackages3()
{
$con = openLockMySQLdb('labcom', 'packages', 'READ');
$q = mysql_query("SELECT id, package FROM packages ORDER BY package ASC", $con);
while($row = mysqli_fetch_array($q)) {
$packages .= '<ul>' . '<li>' . '<label>' . '<input type="checkbox" class="packages_2" id="tab_packages" name="' . $row['package'] . '" value="' . $row['id'] . '-' . $row['package'] . '">' . '<p class="checkbox_label">' . $row['package'] . '</p>' . '</label>' . '</ul>' . '</li>';
}
closeUnlockMySQLdb($con);
return $packages;
}
进入复选框,它正在工作,但我不能只在一行6和一列6。所以我不能从复选框中找到一个正方形。
答案 0 :(得分:1)
我想你的数据库表包含6 * 6 = 36个包,对吗?那么唯一的问题是在每第6个条目之后有一种“换行”。
在这种情况下,我更喜欢CSS解决方案,并使用nth-of-type()
选择器。但是您需要将<ul>
标记移出循环:
function getPackages3()
{
$con = openLockMySQLdb('labcom', 'packages', 'READ');
$q = mysql_query("SELECT id, package FROM packages ORDER BY package ASC", $con);
$packages = '<ul>';
while($row = mysqli_fetch_array($q)) {
$packages .= '<li>' . '<label>' . '<input type="checkbox" class="packages_2" id="tab_packages" name="' . $row['package'] . '" value="' . $row['id'] . '-' . $row['package'] . '">' . '<p class="checkbox_label">' . $row['package'] . '</p>' . '</label></li>';
}
$packages .= '</ul>';
closeUnlockMySQLdb($con);
return $packages;
}
CSS就像那样:
li {
float: left;
}
li:nth-of-type(6n) {
clear: left;
}
我保留了对数据库函数的调用,即使它们使用混合库(请参阅@jeff中的注释),因为它是一个不同的问题,但要使其工作,您还必须解决这个问题。