[英]Ajax codeigniter, loading too fast on success. .done
現在我只用了不到一周的時間就嘗試使用Ajax與codeigniter來創建一個相當復雜的ajax菜單系統。 用戶可以在菜單系統上工作時將其添加到菜單系統中。 我將ajax代碼發布到數據庫中,並成功將其添加到菜單系統中。 我遇到的問題是在對數據庫進行更新之前代碼正在運行。 因此,除了獲得新菜單部分外,我還只是在添加新菜單之前獲得了最新菜單的副本。 如果我稍等片刻,然后使用附加在ajax調用中的按鈕而不是使用.done手動進行調用,則效果很好。
這是我的ajax電話
// this is attached to my form to add a menu section
$(function(){
$('#add_category_form').submit(function(evnt){
evnt.preventDefault();
var posting = $.post(base_url+"/menu/add_category", $("#add_category_form").serialize());
posting.done(newCategory());
});
//calls view to generate menu section
function newCategory(){
$.ajax({
'url' : base_url + '/' + controller + '/new_category',
'type' : 'POST', //
'success' : function(data){
var container = $('#testcontainer');
if(data){
container.html(data);
}
}
});
}
// view
<?php
$count = count($menu)+1;
$counter=0;
foreach ($menu as $category) {
$counter++;
if ($count == $counter) {
echo "menu html goes here of last menu created";
}
}
?>
如果要使用ajax延遲方法,則可以執行以下操作。
(function($){
$('#add_category_form').submit(function( event ){
event.preventDefault();
var _data = this.serialize();
doSomething( _data ).then(
function( response ){}, // Success
function( error, code){} // Error
);
});
var doSomething = function( data ){
return $.ajax({
url : base_url + "/menu/add_category",
data : data,
type : 'POST',
dataType : 'html'
}).promise();
};
}(jQuery));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.