Интересно, как я могу убедиться, что флажок установлен на обратной стороне, если, например, кто-то оставляет пустое поле адреса, он должен убедиться, что пользователю не нужно снова заполнять всю форму. В этом случае я генерирую 31 флажок. Это действительно расстраивает.Как установить флажки для проверки в цикле?
$output_checkbox = '';
$checked = '';
for ($i=1; $i <= 31; $i++) {
if (isset($_POST['dagen'])) {
foreach ($_POST['dagen'] as $dag) {
if ($dag == $i) {
$checked . $i = 'checked';
}
}
}
$output_checkbox .= '<input type="checkbox" name="dagen[]" value="' . $i . '" id="day_' . $i . '"' . $checked . ' /><label for="day_' . $i . '">Dag ' . $i . '</label>';
}
Вот форма, но там не проблема:
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<div>
<label for="email">Email:</label>
<input id="email" type="text" name="email" value="<?php if(isset($_POST['email'])) { echo $_POST['email'];} ?>" />
</div>
<div>
<label for="month">Maand:</label>
<select id="month" name="month">
<?php echo $output; ?>
</select>
</div>
<div>
Dagen:
<?php echo $output_checkbox; ?>
</div>
<input type="submit" name="btnSend" value="Verzenden" />
</form>
Вот пример того, как я обычно делаю это, но это намного проще, так как он выходит из базы данных:
$output = '';
while ($row = $result->fetch_array(MYSQLI_BOTH)) {
$selected = '';
if (isset($_POST['month']) && $_POST['month'] == $row['id']) {
$selected = 'selected';
}
$output .= '<option value="' . $row['id'] . '"' . $selected . '>' . $row['naam'] . '</option>';
}
Может обеспечить немного больше деталей, форма, которую вы используете для публикации, код для получения сообщения. и т. д. Как правило, вы можете получить доступ к переменной $ _POST на почте, и она должна содержать всю информацию, необходимую для установки необходимых флажков ... – HappyCoder