保存简单的复选框布尔值


saving simple checkbox boolean php

一些基本的东西,但我不明白为什么它不起作用我想在数据库中保存一个复选框的状态,类型为布尔,如果选中1否则0我的代码如下:

<input type="checkbox" name="stok"  value="1"
  <?php if(isset($_POST['stok'])) echo "checked='checked'"; ?>
/>
<?php
    if (isset($_POST['stok']) && !empty($_POST['stok']) && $_POST['stok'] === 'on')               
        $stok = 1;  
    else 
        $stok = 0;      
    mysql_query ("update tab set etat_vendu=$stok where id=$big");
?>  
//this is my var $stok=$row['stok'];   

可以:

if(isset($_POST['stok'])){
    //$stok is checked and value = 1
    $stok = $_POST['stok'];
}
else{
    //$stok is nog checked and value=0
    $stok=0;
}
$stock = $_POST['stok'] ?? 0; // Null coalescing Since PHP7

尝试在if中将$_POST['stok'] === 'on'更改为$_POST['stok'] === '1'

你的if语句可以更短,更短,因为你已经传递了一个值:)

if (isset($_POST['stok']))
    $stok = $_POST['stok']; // equals 1 since that's the given value
else
    $stok = 0;

编辑:别忘了检查你的UPDATE()声明:

mysql_query("UPDATE tab SET etat_vendu='".$stok."' WHERE id='".$big."'");

必要时添加数据卫生

我想我现在知道你想要什么了

$result = mysqli_query($con,"SELECT etat_vendu FROM tab WHERE id=".$big);
    while($row = mysqli_fetch_array($result))
    {
        $stok = $row['etat_vendu'];
    }

和你的复选框

    <form action='index.php' method='post'>
<?php
    if($stok != 0){
    echo "<input type='checkbox' name='stok'  value='1' checked='checked'/>";
    }
    else{
    echo "<input type='checkbox' name='stok'  value='1'/>";
    }
?>
    <input type='submit' name='submit' value='submit'>
    </form>
<?php
            if(isset($_POST['stok'])){
                //$stok is checkend and value = 1
                $stok = $_POST['stok'];
            }
            else{
                $stok=0;
            }
?>

就这么简单

if($fetch['proved'] === '1') {
   $p1 = 1;
   $p0 = 0;
} else {
   $p1 = 0;
   $p0 = 1;
}
<select name="proved">
  <option value="<?php echo $p0 ?>"><?php echo $p0 ?></option>
  <option selected value="<?php echo $p1 ?>"><?php echo $p1 ?></option>
</select>