• 24-09-2012, 18:46:22
    #1
    Merhaba arkadaşlar,
    Şuan bir script kodlamaktayım ve bu scriptte sipariş bölümünde şöyle bir durumla karşı karşıyayım:

    Ürün Adı - Birim Fiyatı - Adet - Tutar
    Toplam

    Bir kişi A ürününde adet kısmına 5 yazdığında tutara 5 x birim fiyat yazdırmam ve toplama da bunu eklemem gerekli ama bu sayfa güncellendiğinde değil yeni veri yazıldığında yapılmalı. Bunu nasıl yapabilirim çözebilmiş değilim. PHP de yapılabilir mi yoksa javascript ile mi yapılmalıdır? Yardımcı olursanız sevinirim.
  • 24-09-2012, 19:04:19
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    bu sorunun bir benzerini sorduğumda bende cavasikript cevabını aldıydım. yaptık oldu
  • 24-09-2012, 21:06:49
    #3
    Peki hocam nasıl yapabileceğim konusunda yardımcı olabilir misin
  • 24-09-2012, 21:31:30
    #4
    Kodlarınızı paylaşabilir misiniz? jQuery ile bir kaç satırlık fonksiyon ile halledilebilir.
  • 24-09-2012, 22:13:12
    #5
    Ne kadarını paylaşmam gerekir bilmem ama esas bölüm şurası :

    Alıntı
    <tr>
    <td><?php echo $urun_adi; ?></td>
    <td class="cur"><?php echo $birim_fiyat;?> TL<input type="hidden" value="<?phpecho $birim_fiyat;?>"/></td>
    <td class="qty"><input type="text" value="0" size="4" class="cur" onchange="getProductTotal(this)" onclick="checkValue(this)" onblur="reCheckValue(this)" /></td>
    <td><input type="text" value="0" readonly="readonly" size="8" class="cur" /></td>
    </tr>
    While döngüsüyle ürünleri listeletiyorum.
  • 24-09-2012, 22:44:52
    #6
    <script src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
    
    <tr>
    <td><?php echo $urun_adi; ?></td>
    <td class="cur"><?php echo $birim_fiyat;?> TL<input type="hidden" id="birim_fiyat" value="<?phpecho $birim_fiyat;?>"/></td>
    <td class="qty"><input type="text" id="adet" value="0" size="4" class="cur" onchange="getProductTotal(this)" onclick="checkValue(this)" onblur="reCheckValue(this)" /></td>
    <td><input type="text" value="0" readonly="readonly" size="8" class="cur" /></td>
    <td><input id="toplam" name="toplam" value="" class="cur" /></td>
    </tr>
    
    <script>
        $("input#adet").keyup(function () {
          var BirimFiyat = $("input#birim_fiyat").val();
    	  var Adet  	 = $(this).val();
          $("input#toplam").val(parseInt(BirimFiyat) * parseInt(Adet));
        }).keyup();
    </script>
    js kodlarını döngü içine almayın.

    Mantık şu;

    Elimde 2 adet input alanı mevcut, birim fiyatı ve adedi. Input alanlarına birer id tanımladım yukarıdaki kodda görebilirsiniz. Birim fiyatı veritabanından çekliyor, adedi ise standart olarak 0 duruyor.

    jQuery ile adet id'li input alanına yeni bir değer girildiği anda birim_fiyat x adet işlemini yapıp toplam id'li input alanına bu işlemin sonucunu value olarak girmesini söyledim.

    Farklı bir yol olarak ayrı bir php dosyası oluşturursunuz. Bu dosyada matematiksel işlemlerinizin bulunduğu kodlar olur. Yine aynı şekilde adet alanına yeni değer girildiğinde keyup fonksiyonu ile formu post ederek arka planda işlemi yaptırırsınız.
  • 29-09-2012, 15:47:00
    #7
    Hocam peki bunu döngüye sokmazsam her ürün için tek tek bu kısmı nasıl eklerim onu anlamadım. Yani şu sitedeki gibi olmasını istiyorum :
    http://www.erenmakina.com.tr/siparis.php
  • 03-10-2012, 19:53:40
    #8
    Lütfen biri şunu nasıl yapacağımı anlatabilir mi
  • 03-10-2012, 20:21:20
    #9
    Üyeliği durduruldu
    sanırım bu işlemi istiyorsunuz.

    Alıntı
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <!--谫 kolay bir 򥫩lde ajax kullanmam񺽠sa𬡹an jquery k𴼰hanesini projemize entegre ediyoruz-->
    </head>
    <body>
    <input type="text" name="sayi_1" />
    <input type="text" name="sayi_2" />
    <input type="text" name="sonuc" />
    <script>
    $("input[name$='sayi_1']").change(function() { topla(); });
    $("input[name$='sayi_2']").change(function() { topla(); });

    function topla() {
    var sayi1 = parseInt($("input[name$='sayi_1']").val());
    var sayi2 = parseInt($("input[name$='sayi_2']").val());
    var sonuc = sayi1 + sayi2
    if (isNaN(sonuc)) { sonuc = 0; }
    $("input[name$='sonuc']").val(sonuc);
    }
    </script>
    </body>
    </html>