0

category.tpl Opencart 1.5.x では、カートに追加ボタンに数量を追加しようとしています。

<div class="cart">
    <input type="text" name="quantity<?php echo $product['product_id']; ?>" value="1" size="1" />
    <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>', 'document.form.quantity<?php echo $product['product_id']; ?>.value')" class="button" />
</div>

addToCart の 2 番目の変数に数値を入力すると、次のようになります。

addToCart('<?php echo $product['product_id']; ?>', 2);

これにより、数量 2 の罰金が追加されます。ffで要素名を確認すると、phpから正しく「quantity6.value」などの数字が返されていることがわかりますが、[カートに追加]をクリックしても何も起こりません。誰かが私を正しい方向に向けることができますか?

より簡潔にするために、行を次のように変更しました: " onclick="addToCart('', document.getElementById('quantity').value)" class="button" />

しかし、それでもボタンはクリックしても何もしないようです。document.getElementById().. 行が数値を正しく返していないと思いますが、それをテストする良い方法がわかりません。

これもうまくいかないようです:

<div class="cart">
    <input type="text" name="quantity<?php echo $product['product_id']; ?>" value="1" size="1" onchange="updateQty(<?php echo $product['product_id']; ?>);" />

    <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>', getQty(<?php echo $product['product_id']; ?>);)" class="button" />
  </div>
...

<script type="text/javascript"><!--

function getQty(num) {
getQty = document.getElementById('quantity' & num).value;

}

function updateQty(num) {
var ibox = document.form.quanity[num].value;
quantity[num] = ibox;
}
...
</script>
4

1 に答える 1

2

これは正直言って少しやり過ぎのようです。onclickイベントの関数をaddToCartCategory()に変更し、名前を数量ボックスの ID に変更するだけで、1 つの関数でこれを行うことができます。の線に沿った何か

<div class="cart">
    <input type="text" id="quantity<?php echo $product['product_id']; ?>" value="1" size="1" />

    <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCartCategory(<?php echo $product['product_id']; ?>)" class="button" />
  </div>
...

<script type="text/javascript"><!--

function addToCartCategory(product_id) {
    var qty = $('#quantity' + product_id).val();
    addToCart(product_id, qty);

}
...
</script>
于 2013-05-12T16:57:57.287 に答える