Не работает простейший 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);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
здравствуйте, программирую на php без нескольких месяцев год, и пока что не могу точно понят в чём преимущество классов по сравнению с функциями,...
Есть файл, в котором обрабатываются данные и есть прокси, который написан для для кросс-доменных запросовФайл, в котором обрабатываются данные,...
У меня в системе есть автоматические задачи при изменении статуса клиента, автоматически ставится задача у которой есть значение "выполнить...
Хочу вывести таблицу с данными в 3 колонки - не получаетсяПрошу помочь