【发布时间】:2011-04-18 08:39:52
【问题描述】:
我正在尝试动态创建链接到 MSSQL 数据库的 php 复选框。这个想法是列出表中的每个项目,并带有一个复选框。从那里,用户将能够选中复选框并单击提交以将数据库的 1 字段中的值更改为“A”。我将数据库链接到 php 并输出复选框和表值,但是我不知道如何从那里动态检查复选框以查看它们是否被选中,或者从那里使用它。
【问题讨论】:
标签: php sql-server dynamic checkbox
我正在尝试动态创建链接到 MSSQL 数据库的 php 复选框。这个想法是列出表中的每个项目,并带有一个复选框。从那里,用户将能够选中复选框并单击提交以将数据库的 1 字段中的值更改为“A”。我将数据库链接到 php 并输出复选框和表值,但是我不知道如何从那里动态检查复选框以查看它们是否被选中,或者从那里使用它。
【问题讨论】:
标签: php sql-server dynamic 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 注入的影响,请注意这一点。
【讨论】: