簡體   English   中英

從MySQL表創建復選框(表)

[英]Create checkboxes(table) from mysql table

我想將詳細信息從MySQL數據庫寫到復選框。 復選框結構應看起來像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。 所以我不能從復選框做一個正方形。

我想您的數據庫表包含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的注釋),因為這是一個不同的問題,但是要使其正常工作,您還必須解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM