我有一個包含許多複選框的表單。複選框數組只顯示選中的值 - PHP
ex。我想要所有的數組中的所有複選框。陣列'dodatkowe'。
,當我檢查所有複選框有:
Array ([0] => 1 [1] => 1 [2] => 1)
,但是當我檢查例如僅次於我的:
Array ([0] => 1)
我需要的是,當我檢查例如第二個複選框:
Array ([0] => 0 [1] => 1 [2] => 0)
我有一個包含許多複選框的表單。複選框數組只顯示選中的值 - PHP
ex。我想要所有的數組中的所有複選框。陣列'dodatkowe'。
,當我檢查所有複選框有:
Array ([0] => 1 [1] => 1 [2] => 1)
,但是當我檢查例如僅次於我的:
Array ([0] => 1)
我需要的是,當我檢查例如第二個複選框:
Array ([0] => 0 [1] => 1 [2] => 0)
給他們的索引,所以你可以具體參考他們...
...
<input name="dodatkowe[1]" type="checkbox" value="1" />
<input name="dodatkowe[2]" type="checkbox" value="1" />
<input name="dodatkowe[3]" type="checkbox" value="1" />
...
不知道爲什麼你覺得你需要看到選中的值,這可以被認爲是檢查的值的倒數....任何試圖做,這是一個黑客,並且是不必要的。
可能,每個前面都有一個:''(改變'dodatkowe ['當然是相應的]之後的數字) – Wrikken 2012-01-11 21:25:35
如果複選框未選中,將不包括它的價值傳入的參數,但第一步是給複選框一個唯一的ID:
<input name="dodatkowe[0]" type="checkbox" value="1" />
<input name="dodatkowe[1]" type="checkbox" value="1" />
<input name="dodatkowe[2]" type="checkbox" value="1" />
然後你可以使用PHP來檢查是值有:
$maxfields = 3;
$selectboxes = $_REQUEST['dodatkowe'];
for($i = 0; $i < $maxfields; $i++)
if(!isset($selectboxes[$i])) $selectboxes[$i] = 0;
這將會把所有不存在的字段爲0,$selectboxes
應該包含你正在尋找的結果。
不確定我喜歡或者會推薦)直接修改'$ _REQUEST' ...可能會引起混淆,取決於您需要對提交的值進行哪些進一步處理。 – jondavidjohn 2012-01-11 21:31:16
正確...您可能需要考慮在之前將其複製到另一個變量。 .. – bardiir 2012-01-11 21:32:42
瀏覽器只提交選中的複選框,所以你永遠不會看到未選中的複選框的值。 – Neil 2012-01-11 21:27:21