2012-09-25 55 views
2

可能重複:
Post the checkboxes that are unchecked連載空數組輸入

我得到了與序列化空數組輸入的問題。例如:

<input type="checkbox" name="test_checkbox[]" value="test" id="test"> 
<input type="checkbox" name="test_checkbox[]" value="test1" id="test1"> 
<input type="checkbox" name="test_checkbox[]" value="test2" id="test2"> 

時都未檢查,我提交表單(通過POST),jQuery.serialize()不包括他們,他們不會出現在我的$ _ POST /序列化的字符串。

但我需要類似test_checkbox = 0,當沒有被勾選。

我該怎麼做?

回答

0

在服務器代碼

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

,只要把這個,如果他們沒有在客戶端設置與$_POST['test_checkbox']變量設置將離開你爲0。不過,我建議使用新變量,而不是重置$_POST中的條目。

0

嘗試這種方式 DEMO

<form id="testform"> 
     <input type="checkbox" name="test_checkbox[0]" id="test" checked="checked" value="true"/> 
     <input type="checkbox" name="test_checkbox[1]" id="test1" checked="checked" value="true"/> 
    <span>click</span> 
    </form> 

腳本

$('span').click(function() { 
    var formDate = $('#testform').serialize(); 
    console.log(formDate); 
})​ 

現在你要像這樣看得見DEMO

$('span').click(function() { 
    var str=$('form input:not([type="checkbox"])').serialize(); 
    var str1=$("form input[type='checkbox']").map(function(){return this.name+"="+this.checked;}).get().join("&"); 
    if(str1!="" && str!="") str+="&"+str1; 
    else str+=str1; 
    alert(str); 
})​ 
+0

取消選中複選框,並獲取控制檯日誌「空字符串」。 那不是我想要的東西:) –

+0

立即選中此[DEMO](http://jsfiddle.net/efJBm/2/) – Sender

+0

試試這個方法也[FIDDLE(http://jsfiddle.net/rgZgH/) – Sender