0

正如标题所示,我遇到了如何更新 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'], and ['All'] 只是显示并显示数据库中的旧数据,但我不明白如何更新复选框。我到处看了,但我被困住了。先感谢您!

4

2 回答 2

0

您的问题不清楚,但我认为您的数据库中有一个名为“all”的列?也许这一列只能取 1 个值(真或假)!

然后你可以在你的表单中测试这个值,如果值为真:复选框将被选中,否则:复选框不会被选中:

<input type="checkbox" name="inputAll" checked="<?php if($hemsida['All'] == true) echo checked; ?>" />Alla

不要使用 value="",而是使用检查,然后测试 $hemsida['All'] 的值,如果它是真的 echo 检查了其他任何事情要做

对于您的 php 代码和应用程​​序的服务器端,您可以测试是否选中了复选框,然后您可以选择要分配给数据库中的列的内容,例如,如果选中了复选框,则创建一个变量(例如 $value_of_checkbox ) 并为此变量分配一个值(例如“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'

于 2013-06-19T16:04:58.057 回答
0

如果我正确理解您的问题,您正在寻找一种方法来检查或不检查复选框,具体取决于数据库信息。如果是这样,我会尝试这样的事情。在获取数据库信息的代码顶部,输入

if($conditionForCheck){
   $inputAll = ' checked="checked"';
}

然后以你的形式

<input type="checkbox" name="inputAll"<?php echo $inputAll; ?> />
于 2013-06-19T16:12:28.590 回答