1

基本上我可以得到适用于勾选框(= 1)时的值,但我无法让它在未选中时发送默认值 0。

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

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

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

5 回答 5

5

你不能做这样的事情吗?

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

因此,如果选中该复选框,则变量为 1。如果未选中,则变量赋值为 0

于 2013-07-17T00:08:13.543 回答
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。

但是,在这里,您应该真正评估您的输入是否应该是复选框,或者更合适的是单选输入。

于 2014-05-14T12:01:12.063 回答
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;
}
});
于 2013-11-22T13:27:41.840 回答
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 值...

于 2019-07-21T10:53:11.650 回答
0

HTML

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

jQuery

if( $("#chkbox1").is(':checked')){
            value = "True";
        }else{
            value= "False";
        }
于 2017-01-09T10:33:13.710 回答