у вас получается идет загрузка страницы —> загружается файл скрипта с гугла, который хочет вызвать функцию initMap, но ее еще нет —> загружается все остальное на странице —> документ полностью загружен, вызывается document.ready —> объявляется функция initMap, но она уже никому не нужна
а должно быть так загрузка страницы —> объявляется функция initMap —> загружается файл скрипта с гугла, вызывает функцию initMap —> документ полностью загружен, вызывается document.ready —> обрабатываются все остальные ваши скрипты
Вы поменяли шило на мыло. "Безымянная функция" и $(document).ready(function(){ это одно и тоже.
Понимаете, у вас функция initMap объявляется только когда document ready, то есть загружены все скрипты, картинки и тд. Вынесите initMap за пределы document ready и все будет работать.
Вы передаете в SQL полученное извне без проверки. Злоумышленник может передать в ваш скрипт не "Admin" в параметре user, а строку, которая удалит все ваши таблицы или выведет все данные по пользователям. Почитате про SQL-инъекции.
У меня не было брони, я не занимался отелями, просто продажа с сайта с оплатой через платежную систему.
Насколько сложно бронь написать зависит от задач: бронь через сайт и бронь менеджером вручную, предоплата за одну ночь или оплата полностью, а если хотят забронировать по телефону как быть с оплатой, отмена брони, возврат оплаты, возвращается вся сумма или удерживается штраф, могут быть разные штрафы при отмене, например отмена за месяц — возвращаем все, а за два дня до въезда — удерживаем стоимость ночи и тд.
а должно быть так загрузка страницы —> объявляется функция initMap —> загружается файл скрипта с гугла, вызывает функцию initMap —> документ полностью загружен, вызывается document.ready —> обрабатываются все остальные ваши скрипты