нужен либо какой-то бэкэнд (или он уже есть и на nodejs? тогда смотри в сторону sequelize чтобы не сильно заморачиваться) либо СУБД с http-интерфейсом типа firebase.
Напрямую из браузера взаимодействовать с mysql не получится.
Нужно действовать в предыдущем then()
потому что в следующий .then попадает результат разрешения промиса, который возвращает предыдущий .then, а в данном случае - undefined https://learn.javascript.ru/promise-basics
Попробуй заценить https://ru.vuejs.org/ (для работы с данными) + https://quasar.dev/ (для интерфейса)
всякие"калькуляторы" делать милое дело, сосредоточившись на данных вместо обновления DOM и отслеживания событий
нет, там то, что необходимо для сборки бандла приложения. по умолчанию там ничего "серверного" нет. Если же добавить next/nuxt/другой ssr - то да, будет что-то серверное. Отдельно туда же и api добавить можно, но совершенно не обязательно.
в пхп прямо в текст сгенеренной страницы вставить тег script с js, который устанавливает глобальную переменную (например window.my_app_page_count), в js скрипте эту переменную использовать по назначению.
Нужно использовать асинхронный reduce: https://jsfiddle.net/h0kbpwvu/2/
Ну и использовать что-то, что возвращает Promise, а не использует callback, например fetch или axios.
Также можно промисифицировать Jquery, но это путь в никуда. Лучше от него вообще отказаться.
function asyncAjax(url) {
return new Promice((success, error) => {
$.ajax({
type: 'GET',
url,
success,
error
});
});
}