【发布时间】:2018-08-16 06:12:31
【问题描述】:
您好,我在我的 html 文件中将 PHP Json 文件附加到 ul 时遇到问题。我已经使用连接到 txt 文件的 data-url 完成了它,但我希望它连接到我的 Mysql 数据库。这是一个使用 data-url 的工作示例:
$.ajax({
url: $container.data("url")
, dataType: "text"
, success: function(data) {
var persons= data.toString().split('\r\n');
for (var i = 0; i < persons.length; i++) {
var person = persons[i];
person && $content.append("<li><b>" + person + "</b></li>");
}
$item = $("#container ul li"),
//Pre-caculate the count of items
itemCount = $item.size();
//Clone the contents
$content.append($content.html());
}
});
这是我尝试使用 Json 做的事情
$.ajax({
type: 'GET',
url: 'php/index.php',
dataType: 'json',
success: function(data) {
$.each(data, function(i, item) {
$content.append("<li><b>" + item.name + "</b></li>");
});
});
这是连接到我的数据库的 PHP 文件:
<?php
$host = 'localhost';
$db = 'made';
$user = 'root';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$dbh = new PDO($dsn, $user, $pass, $opt);
$sql = $dbh->query("SELECT name FROM employee");
$rows = array();
while ($row = $sql->fetchall()) {
$rows[] = $row;
}
echo json_encode($rows);
?>
输出:
[[{"name":"JAMES, MARY A."},{"name":"CARDINAL, GRACE S."},{"name":"RAMON, CHELYND."},{"name":"APPLE, KATHRINE C."},{"name":"JOHNSON , WILSON J."},{"name":"BILL, ANDREW P."}]]
【问题讨论】:
-
您的 PHP JSON 文件是什么样的?它应该是 PHP 页面上的 JSON 字符串。通常使用 PHP 从 MySQL 获取数据来处理数据,然后使用
echo json_encode($assocArray);将 JSON 返回到 JavaScript。 -
嗨,我已经更新了我的帖子
-
非常感谢。 php调用是我唯一的错误吗我的ajax调用有什么问题吗?
-
将
$rows = array(); while ($row = $sql->fetchall()) { $rows[] = $row; }改为 echojson_encode($sql->fetchAll());
标签: php jquery mysql json ajax