我这里有这个代码:
<?php while($rowequipment = mysql_fetch_assoc($sqlequipment)) {
echo '<input type="checkbox" name="equipment[]" value="'.$rowequipment['equipmentid'].'"/> <input type="text" name="count[]" id="count[]" size="3" value=""/>'
.$rowequipment['description']."<br />";
}?>
这会创建一个复选框列表,以选择用户想要的设备和文本框以放入所需的数字。
是否有可能以某种方式将数据存储在php中的关联数组中,以便我无法将其传输到数据库中?例如:
equipmentid count
1 2
3 1
或者有不同的方法来做到这一点。
感谢。
答案 0 :(得分:2)
你可以这样做:
<form method="post">
<?php
$row[0]['equipmentid'] = 1;
$row[0]['description'] = "test1";
$row[1]['equipmentid'] = 2;
$row[1]['description'] = "test2";
foreach($row as $rowequipment)
{
$e_id = $rowequipment['equipmentid'];
echo '<input type="checkbox" name="equipment['.$e_id.'][id]" value="'.$e_id.'"/> ';
echo '<input type="text" name="equipment['.$e_id.'][count]" id="count'.$e_id.'" size="3" value=""/> ';
echo rowequipment['description']."<br />";
}
?>
<input type="submit" value="aa"/>
</form>
,结果将是:
array(1) {
["equipment"]=>
array(2) {
[1]=>
array(2) {
["id"]=>
string(1) "1"
["count"]=>
string(1) "4"
}
[2]=>
array(2) {
["id"]=>
string(1) "2"
["count"]=>
string(1) "6"
}
}
}
现在用你的while改变foreach,你会得到相同的结果。
答案 1 :(得分:0)
PHP将解析使用方括号的表单值,并且它也可以使用ID,因此假设您实际上不需要两个复选框,您可以:
echo '<input type="text" name="count['.$rowequipment['equipmentid'].']" ';
echo 'id="count['.$rowequipment['equipmentid'].']" size="3" value=""/>';
echo $rowequipment['description']."<br />";
请注意,HTML中方括号内的id周围没有引号。