我在PHP中使用POST獲取一些數據。當複選框被選中時,沒有問題,但是如果其中一行有未勾選的複選框,則複選框的所有順序都將消失。我試圖打印數組,我發現如果一個複選框未被選中,它的值就不會被寫入。PHP POST複選框問題
例如,如果我有5行,我檢查其中2。這個數組的大小是2而不是5.我怎樣才能將未選中的複選框轉換爲「0」值?
<input onchange="saveChanges();" type="checkbox" name="showS[]" value="1">
我在PHP中使用POST獲取一些數據。當複選框被選中時,沒有問題,但是如果其中一行有未勾選的複選框,則複選框的所有順序都將消失。我試圖打印數組,我發現如果一個複選框未被選中,它的值就不會被寫入。PHP POST複選框問題
例如,如果我有5行,我檢查其中2。這個數組的大小是2而不是5.我怎樣才能將未選中的複選框轉換爲「0」值?
<input onchange="saveChanges();" type="checkbox" name="showS[]" value="1">
你可以做幾件事。 一是實際顯示的是什麼做這個檢查:
<input onchange="saveChanges();" type="checkbox" name="showS[value1]" value="1">
你也可以只使用唯一的標識符,而不是一個數組ofcourse。另一種選擇是與價值不同,而不是名稱。
如果你沒有在POST請求提交的值(使用isset
確定此),然後設置false
在適當情況下,否則使用您提交的字段的值。
只要做到這一點與這個邏輯
<?php
$checkbox = isset($_POST['checkbox'])?$_POST['checkbox']:0;
....
當有未選中的複選框它不添加到_POST數組,所以你沒得到任何東西..
設置複選框一個適當的值(例如與複選框相關的數據庫表中的行的主鍵列的值)。
該處理與值在數組中,而不是索引。