如何使用AJAX和JSON获取从PHP文件返回的数据
How to use AJAX and JSON to get data returned from a PHP file
对于初学者来说,这个网站是在Debian机器上运行的。我有一个SQLite3数据库,里面有最新的新闻文章。我正在尝试使用PHP查询数据库中的这些文章,并将其作为JSON传递给AJAX,这样它就可以显示在我的网页上。现在什么都没有显示,我不知道错误在哪里。
以下是从数据库获取信息的PHP代码:
<?php
class MyDB extends SQLite3
{
function __construct()
{
$this->open('website.db');
}
}
$db = new MyDB();
$result = $db->query('SELECT * FROM news');
echo json_encode($result);
?>
以下是AJAX所在的JavaScript:
<script type="text/javascript">
function getNews()
{
console.log("firstStep");
$(document).ready(function()
{
console.log("secondStep");
$.getJSON("http://localhost/getNews.php",function(result){
console.log("thirdStep");
$('news').append(result); // display result
});
});
}
我认为错误发生在$.getJSON("http://localhost/getNews.php",function(result)
附近,因为在控制台中,thirdStep永远不会输出
这是它应该附加到的HTML:<div id = "newsEntry"> <news> test </news> </div>
如有任何帮助,我们将不胜感激。
要了解发生了什么,您可能需要添加一个错误处理程序:
$(document).ready(function() {
$.ajax({
url: "http://localhost/getNews.php",
dataType: "json",
success: function(result) {
console.log("thirdStep");
},
error: function(err) {
alert(err);
}
});
})
默认情况下,web服务器将内容作为application/html
提供。因此,当您简单地echo
一个JSON字符串时,它被视为html页面上的文本。要真正从服务器返回JSON,您需要专门设置它
在echo
:之前包含此行
header('Content-Type: application/json; charset=utf-8');
编辑
在检查您的PHP代码时,您缺少一行代码。请注意,$db->query()
会返回一个SQLite3Result
。您需要致电:
$array = $result->fetchArray(SQLITE3_ASSOC); // get an associative array first
$json = json_encode($array);
header('Content-Type: application/json; charset=utf-8');
echo $json
相关文章:
- 如何在php文件中获取$.post-ajax传递的值
- Javascript运行php文件,然后下载文件
- 通过Ajax将JavaScript函数传递给PHP文件
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 通过ajax到php文件获取单选按钮值
- 每天用javascript包含不同的php文件
- 如何使用javascript调用Php文件
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 在CodeIgniter视图中将Javascript或jQuery代码作为PHP文件编写可以吗
- CORS:否'访问控制允许来源'header-但是php设置头文件
- 用PHP发送html表单和文件附件
- 动态地包含来自外部文件PHP的JavaScript
- 向文件 php 表单提交添加多个输入
- 将web服务响应转换为PDF文件- PHP, Javascript
- 基于XML文件(PHP, Jquery)的页面生成
- 如何使用jQuery.ajax发送请求到文件php
- 显示数据下拉列表从另一个文件(php,mysql,javascript)
- 两个电子邮件在同一个文件php
- 从mysql中存储和检索用户js文件.php
- 组织3个文件:PHP、HTML、JS和Smarty