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

时间:2013-07-17 00:03:08

标签: php mysql checkbox

基本上我可以得到适用于勾选方框的值(= 1),但是如果没有选中则无法让它发送默认值0。

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

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

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

5 个答案:

答案 0 :(得分:4)

你能不能做这样的事吗?

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

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

答案 1 :(得分:1)

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.

但是,在这里,你应该真正评估你的输入是一个复选框,还是更合适的无线电输入。

答案 2 :(得分:0)

尝试以下内容

<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;
}
});

答案 3 :(得分:0)

HTML

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

Jquery的

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

答案 4 :(得分:0)

唯一可能的解决方案是:

<?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值...