0

1ページのストアで合計価格を生成しようとしています。

同じページにさまざまな製品があり、foreach内に次のように配置されています。

<input type="hidden" name="price_<?=$product_id?>" value="<?=$product_price?>" />
<input type="text" name="<?=$product_id?>" value="" onchange="calculateTotal();" />

したがって、最初の入力は非表示になり、製品の価格が含まれます。2番目の入力には、product_idとして設定された名前の数量が含まれています。唯一の問題は、1ページに複数の入力が存在する可能性があることです。

それを行うための最良の方法はどれですか?Javascriptを使用して価格を計算するか、Ajaxの投稿とPHPを使用して計算を行います。

4

3 に答える 3

1

新しいdata属性を使用して、非表示の価格フィールドをスキップしてみませんか?このようなもの:

<input class='quantity' type="number" data-price="1.5"  name="prod1" value="" />
<div class='subtotal'>0.00</div>

<input class='quantity' type="number" data-price="7"  name="prod2" value="" />
<div class='subtotal'>0.00</div>

<div id='total'>0.00</div>

これとともに:

$('.quantity').on('change', function(){
    var sub = $(this).val() * $(this).data('price');
    $(this).next('div.subtotal').html(sub).data('sub',sub);
    var tot=0;
    $('.subtotal').each(function(){
            tot+= $(this).data('sub');
        });
    $('div#total').html(tot);
});
于 2013-03-05T17:57:17.747 に答える
0

HTMLを使用して価格変数を格納することは通常、悪いエチケットであることに注意してください。すべての価格の現在の合計を維持しないのはなぜですか。何かのようなもの

$running_total = $running_total+$product_price;

これにより、循環されたすべての製品の合計が出力されます。あなたの質問を誤解してしまったらごめんなさい。

POSTまたはGETを介して渡されるHTMLエンティティとして価格を保存すると、エンドユーザーが操作できるように変数が開いたままになります。

于 2013-03-05T17:25:42.420 に答える
0

好きなようにやってください。サーバーでチェックアウト時に(もう一度?)計算を実行する限り。

于 2013-03-05T17:25:42.823 に答える