如何自动提交复选框

How to auto submit a checkbox

本文关键字:复选框 提交 何自动      更新时间:2023-09-26

这里是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" />&nbsp;<?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代码,它将自动提交表单并执行PHP POST。但是,只有在未检查checkbox的情况下,onclick才能工作。如果选中,屏幕会刷新,就像它做了什么一样,但POST永远不会提交。

综上所述;当没有选中该框并且需要对其进行设置时,一切都能正常工作。但对于UNSET来说,服务器函数永远不会被调用。有人知道为什么吗?

注意:这是测试代码,所以请不要对sql注入

发表评论

复选框值未选中时不会发送,因此未设置$_POST["stay_live"]

<?php
if (isset($_POST["user"])) // type="hidden" will be sent regardless of checkbox
{
    if (isset($_POST["stay_alive"])) echo "Checkbox checked";
    else echo "Checkbox not checked";
}
?>

使用Jquery,我将执行以下操作:您需要制作一个包含要执行的函数的文件。此文件将通过POST或GET 接收

在onclick属性中,只需为操作变量添加一个if,if(element checked)action=unchecked--else action=check

--Jquery函数

function cBoxSubmit($employId, $action){ // call it in your onclick attribute.
   $.post("submitFunction.php",{action: $action, employId: $employId, ...},function(data){ // Parameters: URL file, variables which will receive, call back function
      if(data){
        // On Success or in your case if checked
        // add some code if needed
      }
      else{
          // If unchecked
          // add some code if needed
      }
   }
}

注意:echo==在php文件中返回。。。这就是如何将数据返回到Jquery函数

中的回调函数