ЦЕЛЬ: Мне нужно получить данные из базы данных и обновить main.php(более очевидно через draw_polygon) каждый раз, когда что-то добавляется в базу данных (после $.ajax to submit_to_db.php).
Итак, в основном у меня есть main.php, который будет ajax вызывать другой php для получения массива, который будет сохранен в базе данных, а json-вызов другого php для возврата массива будет использоваться main.php.
$(document).ready(function() {
get_from_db();
$('#button_cancel').click(function(){
$.ajax({
url: 'submit_to_db.php',
type: 'POST',
data: {list_item: selected_from_list},
success: function(result){
...
get_from_db();
}
});
});
function get_from_db(){
$.getJSON('get_from_db.php', function(data) {
...
draw_polygon(data);
});
}
});
В моем случае, что я сделал, это вызов функции get_from_db
для getJSON
, чтобы фактически получить данные из базы данных с данными, которые будут использоваться для draw_polygon
. Но как это должно быть сделано? Я полный новичок, и это мой первый раз попробовать getJSON
и ajax, если честно. Итак, мой вопрос: как работает асинхронная работа? Есть ли другой способ обхода этого решения вместо того, чтобы вызвать функцию get_from_db
с getJSON
(это не синхронно, не так ли? Почему он не обновляет страницу, когда она не входит в функцию?) Все время - как $.ajax
с async: false
(кстати, я не мог заставить его работать). Мой подход работает, но я подумал, что, возможно, есть и другие способы сделать это. Мне бы хотелось узнать, как это сделать. Заранее спасибо. Надеюсь, у меня есть смысл.
Чтобы сделать его более понятным, вот чего я хочу достичь:
-
@start
страницы, получить данные из базы данных (в настоящее время черезgetJSON
) - Покрасьте или нарисуйте
canvas
с помощьюdata
- Когда я нажимаю кнопку "Готово", она обновляет базу данных
- Я хочу, чтобы АВТОМАТИЧЕСКИ снова получить данные, чтобы перерисовать изменения в холсте.