• 28-06-2016, 14:10:11
    #1
    Merhaba arkadaşlar,

    Bir eticaret sitesinin sepet sayfasında sepetteki ürün adetlerinin güncellenmesi için şöyle bir şey deniyorum.

    1 adet input alanı mevcut yanında birde buton. input içine girilen adet değerinin butona tıklandığında veritabanından ajax ile göncellenmesini yapıyorum ancak sepette birden fazla ürün varsa sürekli olarak son eklenen ürünün yani ilk sıradaki ürünü baz alıyor. Bu sorunu nasıl çözebilirim ?

    Form içine alıp veya farklı şekilde öneride bulunursanız sevinirim.

     <script type="text/javascript">
    		$(document).ready(function(){
    		$(".guncel").click(function(){
    						
    		 var adet = $('.sepetadet').val();
    					
    			alert(adet);
    							
    				      });
    					});
    					
    				</script>
    
    <input type="" name="adet"  value="<?= $veri['adet']; ?>" class="sepetadet"/> 
    <a href="#" class="guncel"><img src="img/refresh.png" alt="" /></a>
    
    <input type="" name="adet"  value="<?= $veri['adet']; ?>" class="sepetadet"/> 
    <a href="#" class="guncel"><img src="img/refresh.png" alt="" /></a>
  • 28-06-2016, 16:13:14
    #2
    Anladığım kadarıyla jquery selector'ları parent'li bir şekilde tanımlamadığınız için oluyor.
    birden fazla "guncel" ve birden fazla "sepetadet" olduğu için kaynaklanıyor olmalı.

    Yani mevcut yapınıza göre:

    $(".guncel").click(function(){
    var adet = $(this).prev('.sepetadet').val();

    olmalı.
  • 28-06-2016, 17:48:52
    #3
    Kocaportal adlı üyeden alıntı: mesajı görüntüle
    Anladığım kadarıyla jquery selector'ları parent'li bir şekilde tanımlamadığınız için oluyor.
    birden fazla "guncel" ve birden fazla "sepetadet" olduğu için kaynaklanıyor olmalı.

    Yani mevcut yapınıza göre:

    $(".guncel").click(function(){
    var adet = $(this).prev('.sepetadet').val();

    olmalı.
    Çok teşekkürler hocam, bu şekilde yapınca çalıştı.

    Hocam aynı şekilde urunun id degerini de alıyorum ancak undefine mesajı dönüyor. bunun için nasıl bir düzenleme yapmam gerekir?

    var urunid = $(this).prev('.urunid').val();
    
    <input type="hidden" name="urunid" value="<?php echo $veri['urunid']; ?>" class="urunid" />
  • 28-06-2016, 21:13:38
    #4
    this ve prev'in ne olduğu hakkında biraz araştırma yapabilirsiniz.
    daha önce gönderdiğiniz koddaki .guncel'den hemen önce .sepetadet geldiği için, prev() ile ulaşmıştık.

    buradaki $(this) > tıklanan dom elementinin jquery çıktısı
    prev("selector") ise this'ten yani tıklanan dom elementinden bir önceki dom elementini ifade ediyor.

    Tüm hiyerarşiyi gönderebilirseniz ona göre selector önerebilirim ancak kısa vadeli çözümler yerine jQuery çalışmanız sizin adınıza daha yararlı olacak diye düşünüyorum.

    İyi çalışmalar dilerim
  • 28-06-2016, 21:57:35
    #5
    Kocaportal adlı üyeden alıntı: mesajı görüntüle
    this ve prev'in ne olduğu hakkında biraz araştırma yapabilirsiniz.
    daha önce gönderdiğiniz koddaki .guncel'den hemen önce .sepetadet geldiği için, prev() ile ulaşmıştık.

    buradaki $(this) > tıklanan dom elementinin jquery çıktısı
    prev("selector") ise this'ten yani tıklanan dom elementinden bir önceki dom elementini ifade ediyor.

    Tüm hiyerarşiyi gönderebilirseniz ona göre selector önerebilirim ancak kısa vadeli çözümler yerine jQuery çalışmanız sizin adınıza daha yararlı olacak diye düşünüyorum.

    İyi çalışmalar dilerim
    Haklısınız hocam jquery konusunda baya bi araştırma yapmam gerekiyor.
    En kısa zamanda bu konuya ağırlık vericem.

    Kullandığım kodlar bu şekilde

     <script type="text/javascript">
    	$(document).ready(function(){
    	$(".guncel").click(function(){
    						
    	 var adet = $(this).prev('.sepetadet').val();
    					
    						
    	var uyeid = $('#uyeid').val();
    	var urunid = $('#urunid').val();
    						
    	alert(urunid);
    						
    	// $.ajax({
    		// type:"POST",
    		// url:"post.adet.php",
    		// data: "uyeid="+uyeid+"&adet="+adet+"&urunid="+urunid,
    		// success: function(x){
    								
    		// $('#guncelmsj').html("Güncelleniyor!");
    			 // window.location.reload()
    				// }
    								
    				// });
    							
    						});
    					});
    					
    				</script>
    
    
     <li>
     <input type="" name="adet"  value="<?= $veri['adet']; ?>" class="sepetadet"/> 
    								
    <a href="#" class="guncel" ><img src="img/refresh.png" alt="" /></a>
    								
     </li>
     <input type="hidden" name="urunid" value="<?php echo $veri['urunid']; ?>" id="urunid" />
  • 29-06-2016, 10:09:49
    #6
    guncel'e göre: $(this).parent("li").next("#urunid").val() şeklinde görünüyor.
    yani güncelin üst komşusu olan li ile hiyerarşik olarak aynı seviyede olan ve hemen sonrasında bulunan (next()) urunid değeri.
  • 29-06-2016, 18:41:24
    #7
    Teşekkürle hocam halloldu.