考虑表单中的每个条目都有以下字段名称:
我想在一个表单中添加多个产品。我正在考虑以下内容,其中尾随整数对应于我的数据库中特定产品的ID(这意味着它们不必按顺序排列。它也可能是 1, 3,19 ):
如果我通过POST
- 方法提交此表单,我会(例如)获得以下结果:
$_POST['product_name_1'] = 'computer';
$_POST['product_license_1'] = '$_FA_MySuperCoolLicenseForAComputer';
$_POST['product_version_1'] = 'Computer 1.0';
// And so on...
在正常情况下,我会将条目作为数组提交(包括其他隐藏输入字段中的ID),如下例所示:
<input type='hidden' name='product_id[]' value='1'>
<input type='text' name='product_name[]'>
<input type='text' name='product_license[]'>
<input type='text' name='product_version[]'>
<!-- Repeat for every product in the form -->
<?php
$_POST['product_id'][0] = '1';
$_POST['product_id'][1] = '2';
$_POST['product_name'][0] = 'computer';
$_POST['product_name'][1] = 'screen';
然而,这对我来说可能不。 不要问为什么。
我的问题是:我是否能够遍历每个元素,以便我可以立即将所有产品保存在我的数据库中?我总是需要条目的ID加上其他所有字段。我怎么能找回它们?
这可能很容易,我现在看起来太愚蠢了。我希望你能证明我是对的;)
答案 0 :(得分:1)
你可以用简单的循环
进行迭代 $array=array();
for($i=1;$i<$limit;$i++){
$product=array(
"product_id"=>$_POST["product_id_".$i];
"product_anme"=>$_POST["product_name_".$i];
//etc..
);
$array[]=$product;
}
答案 1 :(得分:-1)
您可以在表单提交的基础上创建一个数组,并将其发送到将数据插入数据库的方法。
喜欢的东西:
<input type='text' name='product_name[]'>
<input type='text' name='product_license[]'>
<input type='text' name='product_version[]'>
<?php
//receiving Part
for($i=0;$i<count($_POST["product_name"]);$i++)
{
$arr[]["product_id"]=$i;
$arr[]["product_name_".$id]=$_POST["product_name"][$i];
$arr[]["product_license_".$id]=$_POST["product_license"][$i];
}
?>
此处表格中没有产品ID,并且已在PHP端计算。