Javascript Ajax没有';不显示PHP数据
我这里有点麻烦。我尝试使用ajax从PHP服务器获取数据,它从Mysql数据库获取数据;然后显示到特定的html标记位置。但是,由于某些原因,没有任何东西可以向html展示。我测试了PHP页面,它工作正常。关键是,当ajax应该获取数据并显示时,数据库中似乎什么都没有 这是我的html目标:Javascript Ajax没有';不显示PHP数据,javascript,php,html,mysql,ajax,Javascript,Php,Html,Mysql,Ajax,我这里有点麻烦。我尝试使用ajax从PHP服务器获取数据,它从Mysql数据库获取数据;然后显示到特定的html标记位置。但是,由于某些原因,没有任何东西可以向html展示。我测试了PHP页面,它工作正常。关键是,当ajax应该获取数据并显示时,数据库中似乎什么都没有 这是我的html目标: <div class="container"> <table> <thead>
<div class="container">
<table>
<thead>
<tr>
<th>Título</th>
<th>Curiosidade</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
这是我的PHP文件:
<?php
require("bdconn.php");
$pdo = new db();
$pdo->mysql->beginTransaction();
$rs = $pdo->mysql->query("select * from timeline");
$rs->execute();
while($row = $rs->fetch()){
?>
<tr>
<td><?php echo $row['titulocuriosidade']?></td>
<td><?php echo $row['curiosidade']?></td>
</tr>
<?php
}
?>
有什么建议吗
提前感谢如果php响应没有标题上的数据类型,ajax响应可能会发送错误 尝试在ajax请求上设置
dataType=“text html”
,这将尝试将响应从文本转换为html
还可以尝试在控制台上打印错误,以显示出哪里出了问题
error: function(xhr,desc,err){
console.log(desc);
}
请参阅上的数据类型:发生的事情是:当您进行ajax调用时,必须在调用的php中返回一些数据。当您需要包含html时,可以调用一个方法,该方法将返回一个已准备好包含在当前html页面中的模板。例如,您可以在加载页面时包含index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="data-ajax"></div>
<script type="text/javascript" src="node_modules/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="js/timeline.js"></script>
</body>
</html>
您还可以让php返回要在ajax中使用的html:
$.ajax({
type: "GET",
dataType: "html",
url: 'timeline.php',
success: function (data) {
$('#data-ajax').html(data);
}
});
<?php
getTimelineData();
function getTimelineData() {
//here you retrieve data from database
$results = array(0 => 'first-result', 2 => 'second-result', 3 => 'third-result');
include_once 'timeline-data.php';
}
我认为PHP只会回显一次。首先,您似乎想要GET而不是POST。之后,在开发者控制台中检查是否接收到数据。另外,首先让php返回硬编码响应以排除数据库问题,然后检查while循环语法。本文可能会有所帮助:正如@greendemiurge所说的,您可以在开发人员控制台中进行调试。在success函数中,您可以放置:console.log(数据);加载页面时,右键单击页面并进行检查。然后,您可以在控制台上检查console.log的返回。不要多次响应XHR,而是将响应数据收集到单个字符串中,并回显该字符串。仍然继续…正如我上面所说的,代码似乎正常。控制台也没有显示任何内容。所以,它看起来是正常的。尝试使用complete
回调查看是否有抛出一些状态。
<?php
getTimelineData();
function getTimelineData() {
//here you retrieve data from database
$results = array(0 => 'first-result', 2 => 'second-result', 3 => 'third-result');
include_once 'timeline-data.php';
}
Here is your data!
<?php foreach($results as $result) { ?>
<?= $result ?>
<?php } ?>