1
我想動態創建鏈接到MSSQL數據庫的php複選框。這個想法是用一個複選框列出表格中的每個項目。從那裏用戶將能夠檢查複選框並單擊提交將數據庫的1字段中的值更改爲「A」。我有數據庫鏈接到PHP和它輸出複選框和表值,但我不知道從那裏如何動態檢查複選框,看看他們是否檢查,或從那裏使用它。動態創建和檢查在php中的複選框
我想動態創建鏈接到MSSQL數據庫的php複選框。這個想法是用一個複選框列出表格中的每個項目。從那裏用戶將能夠檢查複選框並單擊提交將數據庫的1字段中的值更改爲「A」。我有數據庫鏈接到PHP和它輸出複選框和表值,但我不知道從那裏如何動態檢查複選框,看看他們是否檢查,或從那裏使用它。動態創建和檢查在php中的複選框
這大致是您想要動態創建複選框的方法。當然有更漂亮的方法來完成這個(即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注入的影響,請注意這一點。
聰明是偉大的,如果你恨自己。 – 2011-04-17 23:36:48
老兄,如果你討厭自己,網絡編程總的來說非常棒。我從未見過如此不必要的複雜事情。要編寫一個網站,你需要學習至少4種不同的語言。 – 2011-04-17 23:39:21
看你這幫助一噸! – Christopher 2011-04-17 23:39:48