我不明白问题是什么。任务是这样的:你需要将数据从 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;
阿帕奇日志:
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() 显示返回数据的简单示例;有关响应的更多信息: https ://developer.mozilla.org/ru/docs/Web/API/XMLHttpRequest/response
更多关于 XMLHttpRequest 的示例: https ://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
另一种选择是通过 jQuery 库使用 ajax。与 XMLHttpRequest 不同的是,它兼容古老的 IE 浏览器,更好地适应特定浏览器的小 bug 和特性。
更多详情:https ://ruseller.com/lessons.php?id=1452&rub=32
你应该明白什么
php 代码在调用时执行。您通过 JS 发送数据并完成工作。因此,php 接收数据,处理它,然后退出。
如果你试图通过浏览器查看结果,那么当你打开页面时,这是一个新的命中和一个新的脚本执行,与你通过 JS 的请求无关。因此,如果您需要在发送后显示数据,您需要立即接收。