簡體   English   中英

修改POST請求以表示數量

[英]Modifying a POST request to denote quantity

我目前正在努力允許管理員在管理后端的“ 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的新手。

好的,這是我打開order_form.tpl時發現的-刪除只需通過從表中刪除一行即可完成(是的,用HTML詞從<tbody>刪除<tr> <tbody> )並保存順序(更新)。 並且由於包含產品的整個表格也是充滿隱藏輸入的表格(字面意義,即<form> ),因此應該有可能以與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>

(即刪除文本表示並更改隱藏為輸入文本的輸入),同時可以選擇將輸入設為+/-(旋轉)字段,這可以解決您的問題。

當然,最后,您需要單擊“ 保存”或在數量輸入旁邊添加另一個小按鈕,例如

<td class="right">
  <input type="text" name="order_product[<?php echo $product_row; ?>][quantity]" value="<?php echo $order_product['quantity']; ?>" />
  <input type="image" src="view/image/update.png" alt="<?php echo $button_save; ?>" title="<?php echo $button_save; ?>" onclick="$('#button-update').trigger('click');" />
</td>

這可能對您有用;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM