2013-07-17 144 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"; 
     }