正如标题所示,我遇到了如何更新已在我的SQL数据库中拥有数据的复选框的问题。
我的代码如下:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Name <input type"text" name="inputName" value="<?php echo $hemsida['Namn']; ?>" /> </br>
Commentar <input type"text" name="inputComment" value="<?php echo $hemsida['Comment']; ?>" />
<br/>
</br><input type="checkbox" name="inputAll" value="checked" <?php echo $hemsida['All']; ?>/>Alla
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
<input type="submit" name="submit" value="Redigera">
<?php
if(isset($_POST['submit'])) {
$u = "UPDATE hemsida SET `Namn`='$_POST[inputName]', `Comment`='$_POST[inputComment]', `ALL`='$_POST[inputALL]' WHERE ID = $_POST[id]";
mysql_query($u) or die(mysql_error());
echo "User has been modified";
header("Location: ..//sokh.php");
}
?>
echo $ hemsida ['Namn'],['Comment']和['All']只显示并显示数据库中的旧数据,但我不明白如何更新复选框。我到处都看,但我被卡住了。提前谢谢!
答案 0 :(得分:0)
您的问题不明确,但我认为您的数据库中有一个名为“all”的列?也许这个列只能取1个值(真或假)!!
然后您可以在表单中测试此值,如果值为true:将选中复选框,否则:将不会选中复选框:
<input type="checkbox" name="inputAll" checked="<?php if($hemsida['All'] == true) echo checked; ?>" />Alla
不要使用value =“”,而是使用checked,然后测试$ hemsida ['All']的值,如果它是真正的回声检查其他任何事情
对于您的应用程序的PHP代码和服务器端,您可以只测试是否选中了复选框,然后您可以选择要在数据库中分配给您的列,例如,如果选中复选框,则创建变量(对于示例$ value_of_checkbox)并为此变量赋值(对于exampel为“true”),然后在更新数据库列的sql代码中包含此变量:
if (isset($_POST['inputALL'])) {
$value_of_checkbox = true;
}
else {
$value_of_checkbox = false;
}
if(isset($_POST['submit'])) {
$u = "UPDATE hemsida SET `Namn`='$_POST[inputName]', `Comment`='$_POST[inputComment]', `ALL`='$value_of_checkbox' WHERE ID = $_POST[id]";
mysql_query($u) or die(mysql_error());
echo "User has been modified";
header("Location: ..//sokh.php")
注意:我还更改了此部分中的sql代码:ALL='$value_of_checkbox'
答案 1 :(得分:0)
如果我正确理解您的问题,您正在寻找一种方法,可以根据数据库信息选中或不选中复选框。如果是这样,我会尝试这样的事情。在代码的顶部,您将获得数据库信息,请输入
if($conditionForCheck){
$inputAll = ' checked="checked"';
}
然后以你的形式
<input type="checkbox" name="inputAll"<?php echo $inputAll; ?> />