Не работает простейший ajax запрос. При нажатии на кнопку должно отправляться письмо. При нажатии на кнопку срабатывает первый alert. Далее выскакивает второй alert(data) и он пустой, но при этом обработчик test.php не срабатывает. Не работает как с прямым так и с относительным путем. Помогите, я в отчаянии!
Код
function klikaj() {
alert('ok');
var name=3;
var phone=6;
$.ajax({
url: 'http://exmaple.xyz/test.php',
data: {phone:phone, name:name},
type: 'POST',
success: function(data){
alert (data);
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Код обработчика
echo $_POST['name'];
mail("milllanikev@gmail.com", "My Subject", "Line 1\nLine 2\nLine 3");
Есть предположение что это из-за единой точки входа расположенной в index.php
if ($_SERVER['REQUEST_URI'] == '/') {
$Page = 'index';
$Module = 'index';
} else {
$URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$URL_Parts = explode('/', trim($URL_Path, ' /'));
$Page = array_shift($URL_Parts);
$Module = array_shift($URL_Parts);
if (!empty($Module)) {
$Param = array();
for ($i = 0; $i < count($URL_Parts); $i++) {
$Param[$URL_Parts[$i]] = $URL_Parts[++$i];
}
}
}
if ($Page == 'index') include('page/index.php');
else if ($Page == 'regreg') include('page/regreg.php');
else if ($Page == 'editproject') include('page/editproject.php');
else if ($Page == 'regcom') include('page/regcom.php');
else if ($Page == 'regprofile') include('page/regprofile.php');
else if ($Page == 'addproject') include('page/addproject.php');
else if ($Page == 'delmember') include('page/delmember.php');
else if ($Page == 'addmember') include('page/addmember.php');
else if ($Page == 'account') include('acc/account.php');
else if ($Page == 'search') include('page/search.php');
else if ($Page == 'comm') include('page/comm.php');
else if ($Page == 'mail') include('mail.php');
нужно было прописать в index путь к файлу
else if ($Page == 'test') include('test.php');
А в ajax url: '/test'
Никогда не дебажьте так
alert (data);
всегда дебажьте так
console.log(data);
И смотрите в консоли.
Далее, смотрите в консоли куда уходит ajax и что возвращает.
Попробуйте просто напрямую зайти на http://exmaple.xyz/test.php, чтобы убедиться, что запросы попадают туда куда надо, можно в test.php первой строчкой написать return "да это я"; чтобы проверить.
Этот код и не будет работать. Наверняка у вас в консоли браузера пишет $.ajax is not a function. (Консоль браузера открывается по кнопке F12)
Вам сперва надо подключить аякс
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
а затем уже вызывать функции
Впрочем вы не привели коды ошибок, которые у вас в консоли поэтому ответ вам никто внятный не даст.
В файле http://exmaple.xyz/test.php я рекомендую вам для теста весь код закоментить и написать лишь 2 проверочных строчки
<?php
print_r($_POST);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники