【问题标题】:Define HTML check boxes from database values从数据库值定义 HTML 复选框
【发布时间】:2021-12-26 19:39:37
【问题描述】:

我有一个带有 HTML PHP 和 SQL 数据库的项目。我设计了 HTML 输入表单来收集用户的数据并使用 PHP 放置下拉菜单。它使用查询从 SQL 数据库中收集数据,这些数据用于下拉列表,用户可以选择这些数据。我在 PHP 部分使用了以下代码。

$query2 = "SELECT Name FROM class ORDER BY Name";   
$results2 = mysqli_query($connection, $query2);

while($result = mysqli_fetch_array($results2))
{
    $Classes .= "<option value=\"{$result['Name']}\">{$result['Name']}</option>";
}

在我的数据库中有几个类,如 Class_A、Class_B、Class_C 等。(管理员可以创建新的类或删除可用的类。然后当用户选择类时,显示的类可以根据管理员的设置而有所不同。)

在 HTML 表单部分,我使用以下代码显示类名。

<p>
    <label for=" ">Classes Are</label><br>
    <select name="Classes[]" size="3" multiple >
    <?php echo $Classes ?>
    </select>
</p>

我尝试通过复选框使用此过程(替换复选框中的下拉列表)但我无法解决这个问题。所以,如果有人能给出正确的方法来做到这一点,我们将不胜感激。

【问题讨论】:

  • 使用checkboxes 有什么问题阻止了你的进步?

标签: php html sql checkbox


【解决方案1】:

也许这就是你需要使用checkboxes?分配给 HTML 输入元素的 name 使用 array 类型语法,其名称来自提供的 db

$sql = "select `name` from `class` order by `name`";   
$res = $connection->query( $sql );
while( $rs = res->fetch_object() ) {
    $classes=sprintf(
        '<label>%1$s: 
            <input type="checkbox" value="%1$s" name="Classes[%1$s]" />
        </label>',
        $rs->name
    );
}

然后,在用户选择一个或多个复选框后处理表单提交,您可以这样做:

foreach( $_POST['Classes'] as $index => $value ){
    // do things...
}

您可能甚至不需要添加名称,因此只需 Classes[] 作为输入名称就足够了。请澄清您在尝试使用 checkboxes 而不是 select 菜单时遇到的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多