Здравствуйте, снова необходима ваша помощь, ребята!) Мне необходимо произвести обработку Post запроса с помощью Ajax. Почитал в инете по этой теме, но ничего дельного не дают, одна теория без дельных объясняемых примеров...( Суть в чём: хочу поймать запрос post с помощью ajax, аналогично такому способу на php: if (isset($_POST['sended'])){ // Выполнение операций... } Вот аналогичная функция на AJAX мне необходима на сайте, а как её воплотить в жизнь вообще не представляю( Я крайний чайник в AJAX, к сожалению, потому без вас не справиться(
AJAX-запрос с точки зрения сервера это обычный запрос. Это на клиенте есть разница - аякс там или нет. И "ловится" оно точно так же. Проверкой $_POST.
А как на Ajax этот $_POST ловится вообще?) С этим вопросом и хочу разобраться)) --- Добавлено --- Всё в одном скрипте. У меня лендинг, не вижу смысла к ООП топать, ток контроллер, да админку вынес. В index.php нужно его обработать прям в теле. При наличии $_POST['sended'] я буду показывать окошко через ajax
Ты прям совсем не предпринял попытки вдуматься в смысл вопроса. ПХП у тебя работает на сервере. Аякс у тебя выполняется силами клиентами. Если ты хочешь словить пост-запрос аяксом - у тебя выйдет примерно ничего, потому что в страницу, загруженную в браузер этот же браузер не сможет сделать пост-запрос. Если же ты делаешь аякс-запрос к серверу - то он там особо ни чем не отличается от других "обычных" запросов. Веб-сервер как бы почти не знает аякс это или не аякс. Ему это просто запрос. Да, там клиент может пару наводящих на мысль полей установить, но в остальном это будет обычный запрос. Веб-сервер разрешит к какому механизму отправить его обработку, сообразит переменные окружения и запустит исполнителя - в твоем случае пхп-машину. Пхп-машина всосет входные данные и выплюнет выходные. И так на каждом запросе. Не важно аякс или не аякс.
Всё в одном скрипте. У меня лендинг, не вижу смысла к ООП топать, ток контроллер, да админку вынес. В index.php нужно его обработать прям в теле. При наличии $_POST['sended'] Вся проблема кроется в том, что я чайник в Ajax. Как я понял, поймать запрос Post на Ajax нельзя, как на php?
AJAX - это не язык программирования. Это механизм отправки запросов к серверу в фоновом режиме. Это механизм JavaScript. JavaScript работает на клиенте. В браузере. Не на сервере. То, что у вас в коде на сервере прописан AJAX - это не значит, что он у вас выполняется там же. Там у вас формируется страница и отправляется клиенту. Вот php-скрипт: PHP: <?php echo "<script>alert('Омайгадабл!');</script>"; Он содержит в себе JavaScript, но тупо в виде текста, который он отправит клиенту. Для PHP - это просто набор символов. Просто текст, не имеющий смысла. А для клиента тут есть смысл. Клиент получит скрипт и выполнит его. AJAX работает следующим образом: 1) На странице, в клиенте, в JS, формируем запрос. 2) Отправляем запрос С КЛИЕНТА НА СЕРВЕР. 3) Ждем ответ сервера. 4) На сервере ловим запрос. Он может быть POST, может GET. Как задали, так и будет. 5) Отдаем ответ, обычным echo, например. 6) AJAX принимает ответ, и дальше запускает какую-то свою логику. Но никакого POST к аяксу никогда не придет, потому что он есть только на клиенте, этот твой аякс. Теперь понятно?
Понял) И до меня допёрло как всё сделать) Просто я ща болею, туго соображаю и сразу не допёр, что можно тупо сделать так: <? if(isset($_POST['sended'])){ echo " //Осуществение показа формы через методы ajax "; } --- Добавлено --- if (isset($_POST['sended'])){ } Я это имел в виду --- Добавлено --- благодарю за помощь и разъяснения)
пхп не "ловит" никаких запросов. Запрос (любой) приходит к веб-серверу (веб-сервер тоже не "ловит" запросы). В заголовке этого запроса, помимо ресурса и версии протокола передачи гипертекста, указывается еще и желаемый "метод" запроса. Гет, пост, пут, делит, опшн и так далее и тому подобное. Это просто строка. Глядя на адрес ресурса, веб-сервер выбирает (разрешает) каким образом этот запрос будет обработан. В случае пхп-файлов - пхп-машиной. Решив передать обработку запроса пхп-машине, веб-сервер создает необходимое начальное окружение, передавая собранные сведения о запросе, и запускает процесс пхп-машины. Та, в свою очередь, читает входные данные и располагает их удобным образом в суперглобальных массивах - _GET, _POST, _SERVER и так далее. Содержимое _POST это всего лишь удобно обработанное пхп-машиной исходное тело запроса, которое веб-сервер получил от клиента и передал пхп-машине при её запуске. Не более того. Ну и наконец, isset($_POST['sended']) может для тебя и означает "словить пост-запрос" но на самом деле это читается примерно как "существует ли ключ сэндед в суперглобальном массиве _ПОСТ". Ты можешь создать пустой скрипт, сделать в нем $_POST['sended'] = 1 и потом вставить свою "проверку". Просто открыв этот скрипт в браузере (а "просто" в данном случае будет подразумевать дефолтный гет-запрос) ты вдруг обнаружишь, что выполнился кусок кода, который ты прикрыл своей "ловушкой пост-запросов". Но ведь это не пост-запрос, верно? Стало быть дырявая "ловушка". Отправив постом форму на урл, в котором есть параметры - эти параметры упадут в _GET. Но это же не гет-запрос!!! Это ж пост-запрос!!! Паника!!! И еще есть смачные штуки типа _SERVER, _COOKIE, _ENV, _SESSION но это не значит, что они появляются когда делается сервер-, куки-, энв- или сэшн-запрос. Формально, таких методов в хттп даже не существует. Но в памяти пхп-машины в момент исполнения - они есть. Вот. Это магия обработки запросов веб-сервером и пхп-машиной. Ну а аякс, как тебе уже сказали, это по сути всего лишь такой же запрос браузером ресурса на сервере, как он обычно делает при открытии страничек и фотографий и тп, только без перезагрузки текущей страницы. Браузер от имени скрипта, который исполняется на текущей странице, делает нужные запросы без перезагрузки этой самой страницы. Обычные хттп-запросы.