2013-07-17 98 views
1

基本上我可以得到的值适用于框勾选(= 1),但我不能让它发送默认值为0时未检查。试图设置默认复选框的值,如果不选中

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

我搜索了四周,有人建议设置一个隐藏的复选框,但它不适合我。

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

你把隐藏输入复选框前? –

+2

未发送复选框不发送 – Musa

+1

为什么您将此标记为PHP/mySQL? –

回答

3

你不可以这样做吗?

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

因此,如果该复选框被选中,变量是1。如果不是,0

+0

工作完美,谢谢! – user2571547

+0

与此问题,是你可能不知道未经检查的领域的名称。我有类似的问题,根据用户数据,复选框的ID可能会有所不同。我可以知道提交后检查了哪些复选框(它们的id),但我不知道(直接)其他复选框在那里并且未经检查,所以我无法在数据库上更新它们。 – DiegoDD

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

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

0

HTML

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

jQuery的

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