当我点击提交时,我需要将每个.product-insert
的数据(所以product_name和product_price)保存在如下数组中:
array(
[0] => array(
'name' => 'Camera',
'price' => 120
),
[1] => array(
'name' => 'Radio',
'price' => 80
)
);
因为我已将数据(产品名称和价格)组合在一起,所以很难将其循环。
我的字段:
<div class="product-insert">
<select name="product_name[]">
<option value="Camera">Camera</option>
<option value="Radio">Radio</option>
<option value="Television">Television</option>
</select>
<input name="product_price[]" />
</div><!--End .product-insert-->
<div class="product-insert">
<select name="product_name[]">
<option value="Camera">Camera</option>
<option value="Radio">Radio</option>
<option value="Television">Television</option>
</select>
<input name="product_price[]" />
</div><!--End .product-insert-->
<!--This button can add extra fields with javascript-->
<input type="button" name="add_product" />
<!--This is the submit button for saving all the fields-->
<input type="submit" name="submit_products" />
这就是我现在所拥有的:
if( isset( $_POST['submit_products'] ) ) {
$products = array_combine( $_POST['product_name'], $_POST['product_price'] );
$products = array_filter( $products );
$products = array_map( 'htmlentities', $products );
}
提供以下输出:
[Camera] => 120 [Radio] => 80
答案 0 :(得分:0)
您需要设置输入名称
<div class="product-insert">
<select name="product[0][name]">
<option value="Camera">Camera</option>
<option value="Radio">Radio</option>
<option value="Television">Television</option>
</select>
<input name="product[0][price]" />
</div><!--End .product-insert-->
如果您有另一个,则将0更改为1。
然后$ _POST将如下所示:
Array
(
[product] => Array
(
[0] => Array
(
[name] => Radio
[price] => value
)
)
)
答案 1 :(得分:0)
我解决了我的问题如下:
$product_prices = $_POST['product_price'];
foreach( $_POST['product_name'] as $key => $value ) {
$products[] = array(
'name' => $value,
'price' => $product_prices[$key]
);
}