Я работаю над учебным планировщиком, который получает свои данные (языковые клавиши, задачи, действия и т. Д.) Из базы данных.Поскольку мне нужна строка JSON, я кодирую ее с json_encode
для работы с ней в JavaScript.У меня есть другая функция (для ключей, задач, действий и т. Д.), Которая получает эти данные и записывает их в массив.
function get_tasks(start_date,end_date){
maxsubtasks=0;
maxtasks=0;
$.getJSON(json_data+"?t_startdate="+start_date+"&t_enddate="+end_date, function(data) {
tasks=new Array();
$.each(data.tasks, function(i,item){
tasks[i]= new Object();
tasks[i]["t_id"]=item.t_id;
tasks[i]["t_title"]=item.t_title;
tasks[i]["t_content"]=item.t_content;
. . .
if ( i > data.tasks.length) return false;
maxtasks = data.tasks.length;
if(item.t_parent > 0){
maxsubtasks++;
}
});
});
return true;
}
Все работает просто отлично.Мне нужна помощь, потому что теперь я должен вызывать эту функцию в $(document).ready()
.Я хочу построить свой учебный планировщик только после завершения функции get_tasks()
(массив заполнен данными).В противном случае я получу ошибки.
Как это можно решить?
Вот что у меня есть в $(document).ready()
:
if(get_tasks(first_day,last_day) && get_tmp_data()){ // If this function is done
// This function should be fired -- just like a callback in jQuery
init_learnplanner();
}