我遇到了将HTML复选框数组传递给PHP的问题,其代码类似于:
$cbArray = checkbox($_POST['cbArray']);
$cbArray = array_chunk($cbArray, 4);
$id = $_POST['id'];
$idcount = count($id);
$id = array_chunk($id, 4);
$cbOuterArrays = 0;
if( $idcount > 16 ){
$cbOuterArrays = 4;
}elseif( $idcount > 12 ){
$cbOuterArrays = 3;
}elseif( ($idcount > 8 ){
$cbOuterArrays = 2;
}elseif( $idcount > 4 ){
$cbOuterArrays = 1;
}
for( $i = 0; $i <= $cbOuterArrays; $i++ ){
$c = 0;
if(isset($id[$i][$c])){
if($cb[$i][$tc] == 'x'){
echo "1st checked in chunk " . $c;
}
}
$c++
if(isset($id[$i][$c])){
if($cb[$i][$tc] == 'x'){
echo "2st checked in chunk ". $c;
}
}
$c++
if(isset($id[$i][$c])){
if($cb[$i][$tc] == 'x'){
echo "3st checked in chunk . $c;
}
}
$c++
if(isset($id[$i][$c])){
if($cb[$i][$tc] == 'x'){
echo "4st checked in chunk . $c;
}
}
}
?>
我的HTML与此类似:
<html>
<input type="text" name="id[]">
<input type="checkbox" name="cb[]"> //I have tried value="1" as well but it didn't help
//Then I have a button that runs js to add more checkboxes
<input type="submit" value="Submit">
</html>
无论我检查哪个复选框,如果我只检查一个回复&#34;第一个检查块0&#34;。它几乎就像只吸引了人口稠密的价值一样。对不起,如果代码看起来不好。我试图删除所有不相关的东西,同时留下任何可能导致问题的原因。我以为我的checkbox函数会检查每个值,如果它是空的,则使它成为数组中的空白空间。如何识别空复选框?
编辑:
正如MaggsWeb所说,我无法发送空复选框。我将复选框功能更改为:
<?php
function cb($x){
$a = []; #Create new array
$cv = 0; #Current new array value
foreach($_POST[$x] as &$v){ #Loop through the first array
while($cv < intval($v)){ #If the new array is not at the old arrays value loop
$a[$cv] = ' '; #Fill the new array value with blank space
$cv++; #Move to next value in new array
} #Repeat if not at the value yet
$a[$cv] = 'x'; #Set the current value of new array to 'x'
$cv++; #Move to next value in new array
} #Move to next value in old array & Repeat
return $a; #Return the new array
}
#and call it via cb('id');
?>
答案 0 :(得分:0)
复选框值只有在选中后才会被发送。
复选框名称不必是“数组”格式,除非它们有很多。在这种情况下,每个人都需要不同的值。
不确定您的所有代码是做什么的。您似乎没有在if ( is_array ( $_POST['cb'] ) ) { ...
答案 1 :(得分:-1)
您可以使用隐藏元素获取未经检查的值。尝试这样的事情:
<input type="hidden" name="checkbox" value="unchecked" />
<input type="checkbox" name="checkbox" id="checkbox1" value="checked" />
取消选中复选框后,$_POST['checkbox']
值来自隐藏元素。否则来自复选框。