2016-04-06 5 views
-1

This is what it looks like on my page to give you a better visual. Это правильное сохранение данных в базе данных. Он остается на странице и не освежает, как пожелал. Единственная проблема У меня есть, когда я пытаюсь сохранить информацию дважды. После первого сохранения ничего не будет сохранено в базе данных, если я физически не удаляю кнопку обновления страницы.Функция AJAX не обрабатывает более одного представления

Например: Я бы изменил название элемента и нажмите кнопку «Сохранить». Новый заголовок правильно загружен в базу данных. Затем я могу понять, что в моем заголовке произошла ошибка и сохранить его снова после его исправления, но новые изменения не будут сохранены.

<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

кажется вам нужно переместить '$ (». Allproducts'). Load' в 'finish' функции – Grundy

+0

@Grundy Я усталым, что. Без изменений. – Trevor

ответ

0

Поместите $('.allproducts').load('admin_editprices.php .allproducts'); в вашу success функцию для обновления данных после Аякса завершения действия

Я бы даже рекомендовал, чтобы переместить его в отдельную функцию, как

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

Однако jQuery Load функция может кэшировать поэтому, если вы не увидите никаких изменений после завершения обновления ajax и изменения значения базы данных, вам может потребоваться изменить функцию loadProducts для использования ajax вместо load

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

У меня все еще был ответ на спасение. Я могу использовать только кнопку «Сохранить», которую я сделал один раз. Никакие другие сохраненные файлы не загружаются, если я не обновляю страницу вручную. – Trevor

+0

Я отредактировал сообщение, пожалуйста, взгляните и дайте мне знать, если он решает проблему. –

+0

Это, похоже, не так. Может быть, мои переменные снова загружают старые значения вместо новых значений? – Trevor

Смежные вопросы