JQuery AJAX вызов выполнить функцию после завершения - PullRequest
2 голосов
/ 22 февраля 2012

Я в мобильном приложении. я использую ajax-вызовы для получения данных с веб-сервера с этим кодом

                $.ajax({
                    url: 'http://www.xxxxxxxxxxxxxxxx',
                    data: {name: 'Chad'},
                    dataType: 'jsonp',
                    success: function(data){
                        $.each(data.posts, function(i,post){
                            $.mobile.notesdb.transaction(function(t) {
                            t.executeSql('INSERT into bill (barcode, buildingcode, buildingaddress, flatname, flatdescription, entryseason, period, amount, pastpayments, todaypayments, receiptno) VALUES (?,?,?,?,?,?,?,?,?,?,?);',
                                [post.Id, post.Code, post.Address, post.Name, post.Description, post.EntrySeason, post.Period, post.Revenue, post.PastPayments, post.todaypayments, post.receiptno],
                                //$.mobile.changePage('#page3', 'slide', false, true),  
                                null);
                            });             
                        });
                    },
                    complete: function(){test = 1;}
                });

Я хочу, чтобы полная функция выполнялась после того, как все данные вставлены в sqlite ...

как я могу это сделать ???

пожалуйста, совет

1 Ответ

2 голосов
/ 22 февраля 2012

Обратный вызов complete должен быть в вашей функции executeSql. executeSql должен принять три аргумента:

var sqlString = 'INSERT into bill (barcode, buildingcode, buildingaddress, flatname, flatdescription, entryseason, period, amount, pastpayments, todaypayments, receiptno) VALUES (?,?,?,?,?,?,?,?,?,?,?);';
var sqlValues = [post.Id, post.Code, post.Address, post.Name, post.Description, post.EntrySeason, post.Period, post.Revenue, post.PastPayments, post.todaypayments, post.receiptno];
var callback = function(){ test = 1; }
executeSql(sqlString, sqlValues, callback);

Вы должны отредактировать вашу executeSql функцию и сделать так, чтобы она принимала третий аргумент, и завершить функцию callback();.

С другой стороны, разве передача SQL-запросов, подобных этой, не является проблемой безопасности? Мол, крупный?

...