Php 提交表单后未存储变量

Php 提交表单后未存储变量,php,html,sql,forms,Php,Html,Sql,Forms,对不起,如果标题没有任何意义。 因此,我的代码如下: <?php $conn=new mysqli("localhost","root","aman8blue","users"); $conn->connect_error; $querynor= mysqli_query($conn,"SELECT * FROM userinfo"); $nor=mysqli_num_rows($quer

对不起,如果标题没有任何意义。 因此,我的代码如下:

<?php
            $conn=new mysqli("localhost","root","aman8blue","users");
            $conn->connect_error;
            $querynor= mysqli_query($conn,"SELECT * FROM userinfo");
            $nor=mysqli_num_rows($querynor);
            for($i=1; $i<=$nor; $i++) {
?>

<form method='post'>
    <label class='switch'><input type='checkbox' name='check' value=1 onChange='this.form.submit()'><span class='slider_round'></span></label>
</form>

<?php

$status = 0;

if(isset($_POST['check'])) {
    $status=1;
}


if($status==1) {
    echo "WORKING!";
}
else {
    echo "NOPE!";
}
}
?>

但不管怎样,即使我勾选了复选框,它也会显示“正在工作!”。我不明白我哪里错了

(对不起,前一个不完整)

提前谢谢

添加

name="check"
在您的输入中,因为post正在查找名称属性,而您没有该属性
<?php
$conn = new mysqli("localhost", "root", "xxxx", "users");
$conn->connect_error;
$querynor = mysqli_query($conn, "SELECT * FROM userinfo");
$nor = mysqli_num_rows($querynor);

echo '<form method=\'post\'>';
for ($i = 1; $i <= $nor; $i++)
    {
    ?>
        <label class='switch'><input type='checkbox' name='check[<?php echo $nor[$i]['id']; ?>]' value=1 onChange='this.form.submit()' <?php echo (isset($_POST['check'][$nor[$i]['id']]) ? 'checked':''); ?>>
            <span class='slider_round'></span>
        </label>
    <?php
    }
echo '</form>';
?>
>
作为对注释的回答。

您的输入缺少属性名,将
name='check'
添加到您的输入中,
$\u POST['check']
使用
name=check
获取输入值,而不是
id
,但您不保存checked状态,因此它将始终按照我所描述的那样工作。将标签行更改为这一行,因为如果您想识别它们(例如,通过数据库中的id),则需要执行唯一的输入。同样,我建议将表单放在迭代循环之外,数据库中是否有ID行?请编辑此答案并在此处向我解释!这会有很大的帮助。