Вот HTML/JavaScript:Как автоматически отправить флажок
<form method = "post" style="display: inline;" name="thisform<?php echo $employee->id; ?>">
<input type="hidden" name="user" value="<?php echo $employee->id; ?>" />
<input type="hidden" name="auto" value="<?php echo $employee->stay_live; ?>" />
<h3><input type="checkbox" name="stay_live" onclick="document.forms.thisform<?php echo $employee->id; ?>.submit();" <?php if ($employee->stay_live == '1') { echo "checked"; } ?> title="Click to Stay Live Every Day" /> <?php echo $employee->name; ?>
</form>
Вот PHP
:
<?php
if(isset($_POST['stay_live'])) {
$user=$_POST['user'];
$auto=$_POST['auto'];
if ($auto == 1) {
$sql = "UPDATE users SET stay_live = 0 WHERE id = '{$user}';";
}
if ($auto != 1) {
$sql = "UPDATE users SET stay_live = 1 WHERE id = '{$user}';";
}
mysqli_query($dbconnection, $sql);
}
?>
Если вы видите onclick
код в форме, он будет автоматически отправить форму и do PHP POST
. Однако, onclick
работает только в том случае, если checkbox
НЕ проверен. Если он установлен, экран обновляется, как если бы он делал что-то, но POST никогда не отправлялся.
Итак, подведем итоги; все работает так, как ожидается, когда флажок не установлен, и его необходимо установить. Но чтобы UNSET это, серверная функция никогда не вызывается. Может ли кто-нибудь понять, почему?
примечание: это тестовый код, поэтому, пожалуйста, никаких замечаний по SQL Injection
Это может быть решить в JQuery, вы можете использовать его? – Mollo
@Mollo У меня есть некоторые базовые знания о нем. Как бы вы это сделали? – KickingLettuce
Дайте мне несколько минут, и я добавлю свой ответ – Mollo