2017-08-03 15 views
-1

何も問題ありません。私は数量を変更すると、計算された金額を表示するsubTotalフィールドをします。私はウェブ開発とプログラミングに比較的新しいです。前もって感謝します。jQuery動的にPHPループ内の行ごとに各小計を計算します

HTML

<tr> 
    <td><input id="quantity" type="text" name="name" value="<?php echo $row['name'] ?>" readonly="readonly"></td> 
    <td><input id="quantity-sm" type="text" name="price" class="price" value="<?php echo $row['price'] ?>" ></td> 
    <td> 
     <input type="button" value="-" class="qtyminus" field="quantity"> 
     <input type="submit" name="quantity" class="quantity" value="0" class="qty"> 
     <input type="button" value="+" class="qtyplus" field="quantity"> 
    </td> 

    <td><input id="quantity-sm" type="text" class="subTotal" name="subTotal" ></td></td> 
    </tr> 
    <?php endwhile; ?> 
<tfoot> 
    <tr><td colspan="2"></td><td align="right"><span id="total" class="total"></span> </td></tr> 
</tfoot> 

はJQuery

$(document).ready(function(){ 

update_amounts(); 
$('.qty').change(function() { 
    update_amounts(); 
}); 

})。

function update_amounts() 
{ 
    var sum = 0.0; 
    $('#myTable > tbody > tr').each(function() { 
     var qty = $(this).find('.quantity').val(); 
     var price = $(this).find('.price').val(); 
     var amount = (qty*price) 
     sum+=amount; 
     $(this).find('.subTotal').text(''+amount); 
    }); 

    $('.total').text(sum); 
} 
+0

であることを仮定していますか?そして、あなたのコードの問題は何ですか? – Teemu

+1

あなたのコードは[SQLインジェクション]する傾向があります(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Teh

+1

@Tehあなたの警告に感謝します。これは、Web開発のためのプロジェクトベースの最初の学習です。私はまだセキュリティについて心配していません。ありがとう。 –

答えて

0

.change()だけtrigerます参照してください。

あなたがする必要があるのは、clickイベントをプラス/マイナスボタンにバインドしてから、数量を更新するコードを呼び出します。

私は、プラス/マイナスボタンは、PHPのループを行うためにこれを持って何すでに作業(彼らはすでにqtyフィールドの値を変更している)

$('.qtyplus, .qtyminus').click(function() { 
    update_amounts(); 
}); 
0

あなたは$(document).ready()コールバックに

$('.qty').change(function() { 
    calculate(); 
}); 

を入れましたか? これは、DOMが準備ができていることを確認します。

は、ユーザーがテキスト入力と相互作用し、手動でその値を変更したとき https://learn.jquery.com/using-jquery-core/document-ready/

+0

私はコードを編集しました。まだ動作しません。 –

+0

@ user43559「動作しません」は問題の説明ではありません。コードで実行する内容とその動作を説明してください。 – Teemu

+0

@ user43559まず、ブラウザにアクセスしてF12キーを押してください。これは、開発コンソールを開くはずです。次に、ページをリロードし、このコンソールにエラーが表示されていないかどうかを確認します。 – capfel

関連する問題