#php #html #sql #forms
#php #HTML #sql #формы
Вопрос:
Извините, если заголовок не имеет никакого смысла. Итак, мой код выглядит следующим образом:
<?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!";
}
}
?>
Но несмотря ни на что, даже если я отмечу флажок, он показывает «РАБОТАЕТ!». Я не могу понять, где я ошибаюсь.
(Извините, предыдущая была неполной)
Заранее спасибо!
Комментарии:
1. у ваших входных данных отсутствует имя атрибута, добавьте
name='check'
к своим входным данным,$_POST['check']
получите значение входных данных с помощьюname=check
, а неid
2. Но вы не сохраняете проверенное состояние, поэтому оно всегда будет работать так, как я описал. Измените строку метки на эту <класс метки =’switch’><тип ввода =’checkbox’ имя =’check’ идентификатор =’check’ значение =1 onChange=’this.form.submit()’ <?php echo (isset($_POST[‘check’]) ? ‘проверено’:»); ?>><span class=’slider_round’></span></label>
3. Потому что вам нужно выполнить уникальные входные данные, если вы хотите распознать их, например, по идентификатору из базы данных. Например <label class=’switch’><input type =’checkbox’ name =’check[0]’ id=’check’ value=1 onChange=’this.form.submit()’ <?php echo (isset($_POST[‘check’][0]) ? ‘проверено’:»); ?>><span class=’slider_round’></span></label>
4. Также я предпочитаю помещать форму вне цикла итерации
5. Есть ли у вас строка идентификатора в базе данных?
Ответ №1:
Добавить
name="check"
в вашем вводе, поскольку post ищет атрибут name, а у вас его нет
Ответ №2:
<?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>';
?>
В качестве ответа на комментарий.
Комментарии:
1. Не могли бы вы, пожалуйста, отредактировать этот ответ и объяснить мне здесь! Это было бы большим подспорьем.