我正在尝试从用户提交的表单中将一些值插入到数据库中。
$id = mysql_insert_id();//Gets ID of last value inserted into related table
foreach( $_POST[ 'equipment' ] as $checkBoxIndex => $checkBoxValue ) {
mysql_query("INSERT INTO recipeequipment (recipeid, equipmentid, datetimeentered) VALUES('".$id."', '".$checkBoxValue."', '".$datetime."')");
}
唯一需要添加到此insert语句的是数量,它以与复选框类似的方式保存,但在文本框中。像这样:
<?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 />";
}?>
我需要帮助的部分是第二个输入栏。我需要将与复选框对应的值放入insert语句中,但不确定如何执行此操作。
答案 0 :(得分:1)
暂时忽略代码中的所有可用性,执行此类操作应该允许您获取唯一ID并将复选框与输入匹配:
<?php while($rowequipment = mysql_fetch_assoc($sqlequipment)) {
echo '<input type="checkbox" name="equipment['.$rowequipment['equipmentid'].']" value="'.$rowequipment['equipmentid'].'"/>
<input type="text" name="count['.$rowequipment['equipmentid'].']" id="count-'.$rowequipment['equipmentid'].'" size="3" value="" />'
.$rowequipment['description']."<br />";
}?>
然后,一旦提交了该表单,您只需执行以下操作即可遍历每个复选框:
foreach ($_POST['equipment'] as $id => $checkboxValue) {
$textInputValue = $_POST['count'][$id];
// do something with the above value here
}
虽然,我不太清楚你为什么要使用这样的复选框 - 它是否会忽略更新它们没有检查的行或什么?