2016-04-06 25 views
-1

This is what it looks like on my page to give you a better visual. Bu, verileri veritabanına düzgün şekilde kaydeder. Sayfada kalıyor ve istenildiği gibi ferahlamıyor. Yalnızca sorun Sorun şu ki, iki kez bilgi kaydetmeye çalıştığımda. İlk kaydetme işleminden sonra, sayfa yenileme düğmesine fiziksel olarak vurmadığım sürece hiçbir şey veritabanına kaydedilmez.AJAX işlevi birden fazla gönderim işlemez.

Örneğin: Bir öğenin adını değiştirir ve kaydet düğmesini tıklatırım. Yeni başlık, veritabanına düzgün şekilde yüklenmiştir. Daha sonra başlığımda bir hata olduğunu anladım ve düzeltildikten sonra tekrar kaydedin, ancak yeni değişiklikler kaydedilmeyecek. ajax eylem

Hatta

function loadProducts() { 
    $('.allproducts').load('admin_editprices.php .allproducts'); 
} 
function finish() { 
    success.text("Saved."); 
    loadProducts(); 
} 

Ancak gibi ayrı fonksiyonu içine taşımak için öneriyoruz tamamlandıktan sonra

<script type="application/javascript"> 

    $(function() { 

    //declaration 
    var success = $("#success"); 


//if the save button is pressed 
$(".saveitem_form").submit(function(e){ 


success.text("Saving....."); 
//$("#success").load('admin_editprices.php #success'); 

var dataString = $(this).serialize(); 
var action = $(this).attr('action'); 

    $.ajax({ 
    type: "POST", 
    url: action, 
    data: dataString, 
    success: finish 
    }); 
$('.allproducts').load('admin_editprices.php .allproducts'); 



e.preventDefault(); 
return false; 

}); 

//if the ajax function was a success 
function finish() { 


success.text("Saved."); 

    } 

    }); 
</script> 
+0

Eğer '$ taşımak gerek görünüyor ('. Allproducts'). O – Grundy

+0

@Grundy Yorgunum apresi işlevi' içine load'. Değişiklik yok. – Trevor

cevap

0

verileri yenilemek için success işleve $('.allproducts').load('admin_editprices.php .allproducts'); koyun jQuery Load işlevi önbelleğe alabilir ajax güncellemesi bittikten ve veritabanı değeri değiştirildikten sonra hiçbir değişiklik görmezseniz,yerine ajax'u kullanmak için loadProducts işlevini değiştirmeniz gerekebilir.

function loadProducts() { 
    $.ajax({ 
     url: "admin_editprices.php", 
     cache: false, 
     dataType: "html", 
     success: function(data) { 
      $(".allproducts").html(data); 
     } 
    }); 
} 
+0

Hala kaydetme yanıtım vardı. Bir keresinde yaptığım 'kaydet' butonunu kullanabiliyorum. Sayfayı manuel olarak yenilemediğim sürece başka hiçbir kayıt yüklenmiyor. – Trevor

+0

Gönderiyi düzenledim, lütfen bir göz atın ve sorunu çözerse bana bildirin. –

+0

Bu durum böyle görünmüyor. Değişkenlerim yeni değerler yerine eski değerleri tekrar yükleyebilir mi? – Trevor

İlgili konular