Я знаю, что есть «Флажок PHP keep установлен после отправки формы«здесь, но этот поток не решает мою проблему, потому что у меня есть несколько флажков, что мне нужно, когда вы установите флажок, это остаться проверенным после отправки.
На данный момент с этим кодом ничего не происходит, я попробовал другой способ, но когда я проверяю флажок «id7», все флажки проверяются.
Я должен знать, какой флажок был отмечен идентификатором, который я ему предоставляю, но я не знаю как.
while ($fila = mysql_fetch_array($rs)) {
echo utf8_encode("<tr>
<td>
".$fila['title']."</td>
");?>
<td>
<input type="checkbox" name="checklist[]" value="<?php echo htmlspecialchars($fila['id']); ?>" <?php if(isset($_POST['checklist[]']) && is_array($_POST['checklist[]']) && in_array('$fila', $_POST['checklist[]'])) echo 'checked="checked"'; ?> />
</td>
<?php
}
}
?>
Во-первых, значение флажка $fila['id']
поэтому, когда вы проверяете, используйте $fila['id']
вместо $fila
, Кроме того, когда PHP получает поля ввода массива с []
в их именах []
будет удален, так что правильная переменная POST $_POST['checklist']
,
Попробуйте изменить эту строку:
<input type="checkbox" name="checklist[]" value="<?php echo htmlspecialchars($fila['id']); ?>" <?php if(isset($_POST['checklist[]']) && is_array($_POST['checklist[]']) && in_array('$fila', $_POST['checklist[]'])) echo 'checked="checked"'; ?> />
в
<input type="checkbox" name="checklist[]" value="<?php echo htmlspecialchars($fila['id']); ?>" <?php if(isset($_POST['checklist']) && is_array($_POST['checklist']) && in_array($fila['id'], $_POST['checklist'])) echo 'checked="checked"'; ?> />
«name» похоже на имя переменной — используя checklist [], вы определяете массив как переменную.
Почему бы просто не назвать каждый флажок правильно? Когда форма отправлена, используйте содержимое $ _POST для установки каждой переменной в $ _SESSION пользователя.
Если страница обновлена, используйте значения из $ _SESSION, чтобы определить, стоит ли ставить флажок. Что-то вроде (не проверено):
<input type="checkbox" name="vehicle" value="Bike"<?php if (isset($_SESSION['bike_checked']) echo 'checked'; ?>> I have a bike<br>
<input type="checkbox" name="vehicle" value="Car"<?php if (isset($_SESSION['car_checked']) echo 'checked'; ?>> I have a car<br>
<input type="submit" value="Submit">