使用HTML类似如下:
<strong>List Number 1</strong>
<ul>
<li><label><input type="checkbox" name="checked[1][]" value="1">Value 1</label></li>
<li><label><input type="checkbox" name="checked[1][]" value="2">Value 2</label></li>
<li><label><input type="checkbox" name="checked[1][]" value="3">Value 3</label></li>
<li><label><input type="checkbox" name="checked[1][]" value="4">Value 4</label></li>
<li><label><input type="checkbox" name="checked[1][]" value="5">Value 5</label></li>
</ul>
<strong>List Number 2</strong>
<ul>
<li><label><input type="checkbox" name="checked[2][]" value="1">Value 1</label></li>
<li><label><input type="checkbox" name="checked[2][]" value="2">Value 2</label></li>
<li><label><input type="checkbox" name="checked[2][]" value="3">Value 3</label></li>
<li><label><input type="checkbox" name="checked[2][]" value="4">Value 4</label></li>
<li><label><input type="checkbox" name="checked[2][]" value="5">Value 5</label></li>
</ul>
凡name
参数具有checked[X][]
的格式,其中 “X” 是List ID。
在提交,在你的问题中提到的值,你会得到:
array(1) {
[1]=>
array(3) {
[0]=>
string(1) "2"
[1]=>
string(1) "3"
[2]=>
string(1) "5"
}
}
所以产生这样的你在OP提到的数组:
$sqlValues = array();
foreach($_POST['checked'] as $list_id => $values){
foreach($values as $k => $v){
$sqlValues[] = ($k+1).' , '.(int) $list_id.' , ' .(int) $v;
}
}
$sqlCmd = 'INSERT INTO `yourTable` (`entry_id` , `list_id` , `item_id`)
VALUES ('.implode(') , (' , $sqlValues).')';