【发布时间】:2012-08-23 01:40:28
【问题描述】:
我正在尝试向我的照片库添加一个简单的购物车系统,目前我正在创建一种简单的方法来更新所选产品的类型和数量。但是我在处理 PHP 端的数据时遇到了问题。
因为我正在发送具有相同字段名称的行,所以 PHP 会覆盖数据以仅创建 1 个数组。理想情况下,我希望它在 PHP 中变成这样;
array(item, product, quantity),
array(item, product, quantity),
array(item, product, quantity)
最好的处理方法是什么。
- 使用某种唯一标识符创建字段名称,然后让 PHP 重新处理 post 数组。
- 用 JS 创建数组,然后将它们作为数组作为一行发送,所以在我的例子中是 3 个数组。不确定它是否会工作,因为它会在 POST 期间转换回字符串?
- 以“item_gallery_id”字段为键创建帖子数组的某种方式?
- 我已经坚持了好几个小时,为了一些我认为很简单的事情,我已经尝试了一切:(
POST 参数
cart_id 1
item_gallery_id 6
item_gallery_id 3
item_gallery_id4
product_options 12
product_options 12
product_options 12
quantity 1
quantity 1
quantity 1
我有以下 HTML
<form id="order_photo_form">
<table width="100%" border="0">
<thead>
<tr>
<th>Item</th>
<th>Album/Item</th>
<th>Product/Price</th>
<th>Quantity</th>
</tr>
</thead>
<tbody>
<tr>
<input class="form_data" name="item_gallery_id" value="6" type="hidden">
<td><img src="img" width="100"></td>
<td>Item</td>
<td><select class="form_data" name="product_options">
<option value="12">Canvas 100x150cm - $550</option>
<option value="11">Canvas 100x100cm - $350</option>
</select></td>
<td><select class="form_data" name="quantity">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select></td>
</tr>
<tr>
<input class="form_data" name="item_gallery_id" value="3" type="hidden">
<td><img src="img" width="100"></td>
<td>Item</td>
<td><select class="form_data" name="product_options">
<option value="12">Canvas 100x150cm - $550</option>
<option value="11">Canvas 100x100cm - $350</option>
</select></td>
<td><select class="form_data" name="quantity">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select></td>
</tr>
<tr>
<input class="form_data" name="item_gallery_id" value="4" type="hidden">
<td><img src="img" width="100"></td>
<td>Item</td>
<td><select class="form_data" name="product_options">
<option value="12">Canvas 100x150cm - $550</option>
<option value="11">Canvas 100x100cm - $350</option>
</select></td>
<td><select class="form_data" name="quantity">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select></td>
</tr>
</tbody>
</table>
</form>
然后是一些简单的 jQuery;
$.ajax({
url: "ajax.php?update_cart",
type: "POST",
data: $('#order_photo_form').serialize(),
success: function(data){
$.jGrowl(data, { life: 10000 });
},
});
谢谢。
【问题讨论】:
-
您可能需要将包含嵌套 JSON 对象的 JSON 对象发送到您的 PHP 脚本。然后在 PHP 脚本中使用 json_decode() 将 JSON 对象放入单独的数组中。
-
jQuery 是否有一个与 jQuery.parseJSON 相反的内置函数?编辑:JSON.stringify >.
标签: php javascript jquery ajax arrays