2016-09-27 48 views
0

我在jquery中做了一些工作。所以我的問題是,當我點擊主播獲取數據並使用append()將其顯示在表中。使用jquery點擊顯示數據表中的數據

但是再次點擊同一個錨點它會複製記錄。但我不想複製它只增加1值。

PHP代碼被

<?php 
    foreach ($product_data as $prod_items) { 
?> 
<a href="#"class="list-group-item product" data-name="<?=$prod_items['itemname'] ?>" data-price="<?= $prod_items['sellingprice'] ?>">  <?= $prod_items['itemname'] ?> </a> 

<?php { 
?> 

我的代碼是

$('.product').click(function() { 

      var name = $(this).attr('data-name'); 
      var price = $(this).attr('data-price'); 
      var qty = 2; 
      var amount = parseFloat(price) * parseFloat(qty); 

      $(".cat_table").append('<tr><td>' + name + '</td><td>' + price + '</td><td>' + qty + '</td><td>' + amount + '</td></tr>'); 


      return false; 
     }); 

謝謝。

+3

你能分享可執行的演示/片段或[JSFiddle](https://jsfiddle.net/)? [_創建最小,完整和可驗證的示例_](http://stackoverflow.com/help/mcve) – Rayon

+0

#Rayon https://jsfiddle.net/yrq8vkx1/3/ – Shaban

+0

- https://jsfiddle.net/ rayon_1990/yrq8vkx1/4/ – Rayon

回答

0

您需要在點擊函數之外聲明您的變量,以便將它們視爲全局變量,並且在重新加載頁面之前不會丟失它們的值。希望這會幫助你。

<script> 

      var qty = ''; 
      var amount = parseFloat(price) * parseFloat(qty); 
$('.product').click(function() { 

      var name = $(this).attr('data-name'); 
      var price = $(this).attr('data-price'); 
    qty = qty + 2; 
     amount = amount + parseFloat(price) * parseFloat(qty); 

      $(".cat_table").append('<tr><td>' + name + '</td><td>' + price + '</td><td>' + qty + '</td><td>' + amount + '</td></tr>'); 


      return false; 
     }); 
</script> 
+0

這就像是評論,而不是答案。 – vijayP

+0

一位優秀的開發人員瞭解一個好的評論和它的價值:) –

+0

如果有人需要一個代碼,我會更新它。 –

0

試試這個,

$('.product').click(function() {  
       var name = $(this).attr('data-name'); 
       var price = $(this).attr('data-price'); 
       var qty = 2; 
       var amount = parseFloat(price) * parseFloat(qty); 
       $(".cat_table").empty(); 
       $(".cat_table").append('<tr><td>' + name + '</td><td>' + price + '</td><td>' + qty + '</td><td>' + amount + '</td></tr>'); 
       return false; 
     }); 

DEMO

+0

我正在循環中工作。所以還有其他值可以添加。所以我不想先清空表格並添加新的值。 我想要的是它應該附加新的值,但不是已經添加的舊值。如果該值存在,它應該增加它不重複它。 – Shaban

+0

@Shaban:顯示你的php代碼。 – Dave

1

只是拆散它後執行序爲它不會再次點擊,並避免重複記錄點擊事件

DEMO

你只需要添加

$(this).unbind('click'); 

您將數據追加後到表

你應該在函數外部聲明數量,以便它的價值不會重置每次活動中點擊執行

var qty = 1; 
$('.product').click(function() { 

    var name = $(this).attr('data-name'); 
    var price = $(this).attr('data-price'); 
    var amount = parseFloat(price) * parseFloat(qty); 

    $(".cat_table").append('<tr><td>' + name + '</td><td>' + price + '</td><td>' + qty + '</td><td>' + amount + '</td></tr>'); 

    $(this).unbind('click'); 

    alert(qty); 

    qty++; // to increment you qty every time you click 

    return false; 
}); 
+0

太棒了。但我想增加每次點擊的數量值。 你的答案解決了我的問題的第一部分,但不是第二部分:-( – Shaban

相關問題