如果未选中,则尝试设置默认复选框值


Trying to set default checkbox value if not checked

基本上,当勾选框(=1)时,我可以获得适用的值,但当不勾选时,我无法获得发送默认值0的值。

<input type="checkbox" name="post_friend" value="1">

我四处搜索,有人建议设置一个隐藏的复选框,但它对我不起作用。

<input type="hidden" name="post_friend" value="0">

你能不做这样的事情吗?

$checkbox = isset($_POST['post_friend']) ? $_POST['post_friend'] : 0 ;

因此,如果选中复选框,变量为1。如果不是,变量赋值为0

OP给出的原始方法应该可以工作,但是,值可能会非常不同。

例如,

<input type="checkbox" name="post_friend" value="1">
<input type="hidden" name="post_friend" value="0">

在这种情况下,["post_friend"] = 0

然而,在这个例子中:

<input type="checkbox" checked="checked" name="post_friend" value="1">
<input type="hidden" name="post_friend" value="0">

大多数浏览器都会发送["post_friend"] = "1,0"。同一属性的多个值通常会在http请求中连接起来。

为此,您可以使用String.Contains来查找1。

然而,在这里,您应该真正评估您的输入是否应该是复选框,或者更合适的是,无线电输入。

试试下面的

<div class="col-xs-5 drinkingLeft">
<input type="checkbox" name="beer" id="beer"class="require-one col-xs-1" value="0"/>
<input id='beerHidden'  type='hidden' value='0' name='beer'>   
<label for="beer" class="col-xs-10">Beer </label>
</div>

 $('#beer').on('change', function () {
this.value = this.checked ? 1 : 0;
 }).change();
$("#submit").click(function () {
if(document.getElementById("beer").checked){
document.getElementById('beerHidden').disabled = true;
}
});

HTML

 <input type="checkbox" id="chkbox1">

Jquery

if( $("#chkbox1").is(':checked')){
            value = "True";
        }else{
            value= "False";
        }

唯一可能的解决方案是:

<?php
    // if data is posted, set value to 1, else to 0
    $check_0 = isset($_POST['check'][0]) ? 1 : 0;
    $check_1 = isset($_POST['check'][1]) ? 1 : 0;
?>

如果你想检查同一页面上的信息,那么使用JS并检查NULL值。。。