我目前正致力于允许管理员在管理后端的Orders -> Product
页面中选择要删除的数量,如下所示:
现在的默认行为是,如果您要删除产品,则会删除整个数量(无法选择要移除的数量)。
在/admin/view/template/sale/order_form.tpl
中查看AJAX中发送的POST请求(当您按下红色的“删除”按钮时)时,我注意到以下代码,表示为order_total
,负责产品删除(为令人难以置信的长代码道歉 - 这就是OpenCart的代码约定。一个大的界限。)
for (i in json['order_total']) {
total = json['order_total'][i];
html += '<tr id="total-row' + total_row + '">';
html += ' <td class="right" colspan="4"><input type="hidden" name="order_total[' + total_row + '][order_total_id]" value="" /><input type="hidden" name="order_total[' + total_row + '][code]" value="' + total['code'] + '" /><input type="hidden" name="order_total[' + total_row + '][title]" value="' + total['title'] + '" /><input type="hidden" name="order_total[' + total_row + '][text]" value="' + total['text'] + '" /><input type="hidden" name="order_total[' + total_row + '][value]" value="' + total['value'] + '" /><input type="hidden" name="order_total[' + total_row + '][sort_order]" value="' + total['sort_order'] + '" />' + total['title'] + ':</td>';
html += ' <td class="right">' + total['value'] + '</td>';
html += '</tr>';
console.log(html + "\n");
total_row++;
}
$('#total').html(html);
正如我在这个隐藏的表单请求字符串中看到的那样,无法定义诸如“quantity”之类的键。事实上,我实际上并不知道如何删除项目,更不用说修改数量的能力了。示例请求字符串如下所示:
<tr id="total-row0"> <td class="right" colspan="4"><input type="hidden" name="order_total[0][order_total_id]" value="" /><input type="hidden" name="order_total[0][code]" value="sub_total" /><input type="hidden" name="order_total[0][title]" value="Sub-Total" /><input type="hidden" name="order_total[0][text]" value="$0.00" /><input type="hidden" name="order_total[0][value]" value="0" /><input type="hidden" name="order_total[0][sort_order]" value="1" />Sub-Total:</td> <td class="right">0</td></tr><tr id="total-row1"> <td class="right" colspan="4"><input type="hidden" name="order_total[1][order_total_id]" value="" /><input type="hidden" name="order_total[1][code]" value="total" /><input type="hidden" name="order_total[1][title]" value="Total" /><input type="hidden" name="order_total[1][text]" value="$0.00" /><input type="hidden" name="order_total[1][value]" value="0" /><input type="hidden" name="order_total[1][sort_order]" value="9" />Total:</td> <td class="right">0</td></tr>
从我的基本理解,它似乎更新整个订单总额。为我的无知而道歉......我对JS / jQuery完全不熟悉。
答案 0 :(得分:1)
好的,这是我在打开order_form.tpl
时发现的内容 - 只需从表中删除一行即可完成删除(是的,在HTML格式中,<tr>
已从{{1}中删除并保存订单(更新)。并且因为包含产品的整个表格也是一个充满隐藏输入的表格(文字,即<tbody>
),所以应该可以像<form>
中的前端一样改变数量。 / p>
如果我是你,我会添加一个微调器输入而不是数量的文本表示,因为这个列(数量)是这样的:
checkout/cart
如果你可以改变这样的事情:
<td class="right"><?php echo $order_product['quantity']; ?>
<input type="hidden" name="order_product[<?php echo $product_row; ?>][quantity]" value="<?php echo $order_product['quantity']; ?>" />
</td>
(即删除文本表示并将隐藏的输入更改为输入文本),同时可选择将输入设为+/-(微调)字段,这可以解决您的问题。
当然,最后,您需要点击保存或在数量输入旁边添加另一个小按钮,例如
<td class="right">
<input type="text" name="order_product[<?php echo $product_row; ?>][quantity]" value="<?php echo $order_product['quantity']; ?>" />
</td>
这可能对你有用; - )