在PHP中动态创建和检查复选框

| 我试图动态创建链接到MSSQL数据库的php复选框。想法是列出表中的每个项目,并带有一个复选框。从那里,用户将能够选中复选框,然后单击提交以将数据库的1字段中的值更改为\“ A \”。我有链接到php的数据库,并且它输出check-checkboxes和表值,但是我不知道从那里如何动态检查checkbox来查看它们是否被选中,或者从那里使用它。     
已邀请:
这大致是您要动态创建复选框所要采用的方法。当然,有更漂亮的方法可以完成此操作(即Smarty模板)。
<html>
...
<form method=\"post\" action=\"submit.php\">
<?php
// connect to DB here

$result = mysql_query(\"SELECT l.id, l.name, u.checked FROM List l LEFT JOIN UserAnswers u ON l.id = u.list_id WHERE u.user_id = 5\");
while ($row = mysql_fetch_assoc($result))
{
    echo \'<input type=\"checkbox\" name=\"cb_\' . $row[\'id\'] . \'\" \' .
        \'id=\"cb_\' . $row[\'id\'] . \'\" \';
    if($row[\'checked\'])
        echo \'checked\';
    echo \" />\\n\"
    echo \'<label for=\"cb_\' . $row[\'id\'] . \'\">\' . $row[\'name\'] . \"</label><br />\\n\";
}
?>

<input type=\"submit\" value=\"Submit\" />
</form>
...
</html>
Submit.php有点棘手。选中复选框后,它将设置一个帖子项目。但是,如果未选中它,您将一无所获,因此您需要检查数据库中所有您期望的项目。
<?php

// connect to DB here
$result = mysql_query(\"SELECT id, name, checked FROM things\");
$answers = Array();
while ($row = mysql_fetch_assoc($result))
{
    $checked = isset($_POST[\'cb_\' + $row[\'id\']]);
    $answers[$row[\'id\']] = $checked;
}

// update your database here using $answers
foreach ($answers as $id => $checked)
{
    $query = \"REPLACE INTO UserAnswers SET user_id=5, list_id=\" . $id . \", checked=\";
    if($checked)
        $query .= \"1\";
    else
        $query .= \"0\";
    mysql_query($query);
}
这全是我的头上的事,有更好的方法来完成大部分任务。这只是一个总体方向。我对此不做任何保证。哦,它看上去很容易受到SQL注入的影响,请当心。     

要回复问题请先登录注册