【发布时间】:2018-01-15 16:38:09
【问题描述】:
当我从我的数据库中调用我的查询并显示它时,我试图删除数组括号,但我得到以下结果:
- ["title1"]
- ["title2"]
- ["title3"]
我需要它显示如下:
- 标题1
- 标题2
- 标题3
我认为添加 json-encode.php 可以解决此问题,但事实并非如此。我究竟做错了什么?任何帮助表示赞赏!谢谢!
Javascript(Ajax 请求)
$(document).ready(function() {
$.ajax({
url: 'get.php',
}).done(function(data){
$('.right ul').append('<li>'+ data +'</li>');
});
});
PHP (get.php)
<?php
$host = "localhost";
$user = "adminn";
$pass = "1234";
$db = "admin";
$con = mysqli_connect($host, $user, $pass, $db);
$query = mysqli_query($con, "SELECT DISTINCT title FROM sample_table WHERE username = 'admin' ");
// $data = str_replace(array("[\'","'\]"),'',$data);
foreach($query as $data)
{
echo '<li>' . json_encode(array_values($data)) . '</li>';
}
?>
已解决!
我换了
`'<li>' . json_encode(array_values($data)) . '</li>';`
与 '<li>' . $data['title'] . '</li>';
【问题讨论】:
-
数据库里面有什么?
-
您在 AJAX 调用和循环
data中缺少dataType: "json",因为它是一个值数组。.done()不会自动循环数据并将您的匿名函数应用于每个项目。 -
如果你通过 Ajax 调用那个 PHP 文件,你要么想输出一个 JSON 并用你的 JS Ajax 请求解析它 - 要么改变你的 Ajax 请求,让它只从 PHP 中获取输出并将其附加到您的 UL。
-
另一个问题是您返回
<li>some stuff</li>并附加<li> data </li>变成<li><li>some stuff</li></li> -
你不能编码
array_values($data),而是$data['title']。
标签: javascript php ajax