Не понимаю в чём проблема. Задача такая: Нужно отправить из js данные в php и вывести их.
Код js:
function send_data(){
var request = new XMLHttpRequest();
var info = "123321";
request.open("POST", "http://localhost/index.php");
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send('info=' + info);
}
Код php:
$info = $_POST['info'];
echo $info;
Лог Apache:
localhost: 127.0.0.1 [22/Jan/2020:17:04:15 +0300] "POST /index.php HTTP/1.1"
200 6 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36"
Просто ничего не происходит, вроде и отправляется всё нормально, но php ничего не выводит.
Чтобы вывести данные вы должны работать с ответом сервера. А если точнее то с XMLHttpRequest.responseText проверяя XMLHttpRequest.onreadystatechange; В коде ниже я добавил простой пример вывода возвращенных данных через alert();
function send_data() {
var request = new XMLHttpRequest();
var info = "123321";
request.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
alert(this.responseText);
}
};
request.open("POST", "http://localhost/index.php");
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send('info=' + info);
}
Подробнее про response: https://developer.mozilla.org/ru/docs/Web/API/XMLHttpRequest/response
Подробнее про XMLHttpRequest с примерами: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
Ещё вариант - это использовать ajax через библиотеку jQuery. Она в отличие от XMLHttpRequest совместима с древними браузерами IE и лучше адаптирована под мелкие баги и особенности конкретных браузеров.
Подробнее: https://ruseller.com/lessons.php?id=1452&rub=32
php код выполняется в момент обращения к нему. Вы по JS отправляете данные и на этом заканчиваете работу. Соответственно php принимает данные, обрабатывает и тоже завершает работу.
Если вы пытаетесь посмотреть результат через браузер, то когда вы открываете страницу - это новое обращение и новое выполнение скрипта, никак не связанное с вашим запросом через JS. Поэтому если вам требуется вывести данные после отправки - нужно их тут же получить.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей