Здравствуйте. Возможно ли сделать выполнение скрипта при POST запросе через AJAX прямо в данном файле? Есть файл index.php и в нём следующий AJAX скрипт: Код (Text): <script type="text/javascript" src="http://mysite.ru/jquery-1.7.2.js"></script> <script type="text/javascript"> function buy1(that) { var count = $(that).closest('form').find('.count').val(); var buy4 = $(that).val(); $.ajax({ type: "POST", data: "count="+count+"&buy0="+buy4+"&hbdgvffvetvfgdvgfvdgvfgdvghfvdghvfghdv=fbhabfhbshfbhsbfh", url: 'http://mysite.ru/engine/modules/shop/index.php', success: function(data) { alert(data); } }); } </script> А вот так должен вызываться скрипт при нажатии на кнопку: Код (PHP): if(isset($_POST['buy0'])) { include('pokupka.php'); } Но возникла проблема. Раньше, когда мне надо было выполнить скрипт непосредственно в файле после POST запроса при нажатии на конопку (без AJAX) я использовал "if(isset($_POST['abc']))", всё было отлично, но как я понял с AJAX запросом это не прокатывает, т.к. мне возвращается содержимое всего файла index.php... Как это можно реализовать с AJAX? Спасибо.
В данном случае лучше всего вынести пхп код Код (Text): if(isset($_POST['buy0'])) { include('pokupka.php'); } в отдельный скрипт. но можно поступить ещё несколькими способами, правда они больше подойдут для сайта в котором есть шаболнизация и в них мало html кода в шаблоне. 1) Можно смотреть элемент массива _SERVER, емнип HTTP_X_REQUESTED_WITH который будет равен XMLHttpRequest 2) Можно передавать дополнительный параметр, напрмиер ajax=1 в любом из способов дальше проверяем, если это ajax запрос, то не выводим весь html код который нам не нужен. Но в вашем случае это будет не удобно, лучше вынесите в отдельный пхп файл скрипт обработки ajax. Если вы решили использовать всё таки один сркипт, то напишите функцию для удобства, напрмиер Код (Text): function isAjax() { return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'; } для первого способа, или Код (Text): function isAjax() { return isset($_POST['ajax']) && $_POST['ajax']== '1'; } для второго. дальше вам нужно весь код убирать если Ajax что то типа Код (Text): <?php if (!isAjax()) : ?> <script type="text/javascript" src="http://mysite.ru/jquery-1.7.2.js"></script> <script type="text/javascript"> function buy1(that) { var count = $(that).closest('form').find('.count').val(); var buy4 = $(that).val(); $.ajax({ type: "POST", data: "count="+count+"&buy0="+buy4+"&hbdgvffvetvfgdvgfvdgvfgdvghfvdghvfghdv=fbhabfhbshfbhsbfh", url: 'http://mysite.ru/engine/modules/shop/index.php', success: function(data) { alert(data); } }); } </script> <?php endif ?> <?php if(isset($_POST['buy0'])) { include('pokupka.php'); } ?> // ну и ниже тоже убирать