【发布时间】:2018-04-29 12:44:18
【问题描述】:
对php/ajax 来说是全新的。每个教程似乎都以某种方式过时了。已经花了大约 30 个小时试图提出一个简单的插入/检索脚本。请帮忙!一旦我看到代码工作,我就更容易摆弄它了解文档。
我收到以下错误。
[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience.
我的index.php相关数据,错误在xmlhttp.open这一行。
disp_data();
function disp_data(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "update.php?status=disp",false);
这是我的 update.php 相关代码。在本教程中,它应该在刷新时加载我的数据,但它是空白的。我不确定为什么教程将其设置为 false,当我在 w3schools 阅读的文档似乎我应该将其设为 true 时,但两者都不起作用。
$status = $_GET["status"];
if ($status == "disp") {
$link = mysqli_connect("localhost", "root", "");
mysqli_select_db($link, "checkbox");
$res = mysqli_query($link, "SELECT * FROM table1");
我的完整 index.php
<div id ="disp_data"></div>
<script src="jquery-3.2.1.min.js"></script>
<script type ="text/javascript">
(function() {
var newXHR = null;
function sendXHR(type, url, data, callback) {
newXHR = new XMLHttpRequest() || new window.ActiveXObject("Microsoft.XMLHTTP");
newXHR.open(type, url, true); // Use async = true to avoid bad user experience for waiting a Sychronous request that might block the UI.
newXHR.send(data);
newXHR.onreadystatechange = function() {
if (this.status === 200 && this.readyState === 4) {
callback(this.response); // Callback function to process the response.
}
};
}
sendXHR("GET", "update.php?status=disp", null, function(response) {
document.getElementById("disp_data").innerHTML=newXHR.responseText;
});
})();
</script>
</body>
我的完整 update.php 文件
$status = $_GET["status"];
if($status=="disp")
{
$link = mysqli_connect("localhost", "root", "");
mysqli_select_db($link,"checkbox");
$res = mysqli_query($link,"SELECT * FROM table1");
echo "<table>";
while($row = mysqli_fetch_array($res))
{
echo "<tr>";
echo "<td>"; echo $row["id"]; echo "</td>";
echo "<td>"; echo $row["name"]; echo "</td>";
echo "<td>"; echo $row["city"]; echo "</td>";
echo "</tr>";
}
echo "</table>";
}
【问题讨论】:
-
@DannyFardyJhonstonBermúdez 我把它改成了 true ,没有错误,但我的数据仍然没有显示
-
我在回答中添加了一些细节。
-
@born2gamble 您的数据没有显示,因为您没有显示任何数据。你的
xmlhttp.onreadystatechange或xmlhttp.onload呢?你的 PHP 脚本在哪里输出任何信息?
标签: php ajax javascript php ajax