当我从数据库调用查询并显示它时,我试图删除数组括号,但我得到以下结果:
- [“标题1”]
- [“标题2”]
- [“标题3”]
我需要它显示如下:
- 标题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>';
最佳答案
jQuery
$(document).ready(function() {
$.ajax({
url: 'get.php',
dataType: 'json'
}).done(function(data){
$.each(data, function(i,v) {
$('.right ul').append("<li>"+v+"</li>");
});
});
});
PHP
<?php
$host = "localhost";
$user = "adminn";
$pass = "1234";
$db = "admin";
$mysqli = new mysqli($host, $user, $pass, $db);
$query = "SELECT DISTINCT title FROM sample_table WHERE username = 'admin'";
if ($result = $mysqli->query($query)) {
$response = array();
while ($row = $result->fetch_assoc()) {
array_push($response, $row['title']);
}
echo json_encode($response);
}
?>
首先,您需要在 ajax 调用中明确声明数据类型。我还注意到您错误地解析了响应并在上面进行了更改。
关于javascript - 删除 php 中的数组括号 - AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267198/