[英]Removing array brackets in php - AJAX request
我試圖從數據庫中調用查詢並顯示它時刪除數組括號,但是我得到以下結果:
我需要它顯示如下所示:
我以為添加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調用中明確聲明數據類型以作為開始。 另外,我還注意到您在解析響應時不正確,並且已在上面進行了更改。
問題在這里:
echo '<li>' . json_encode(array_values($data)) . '</li>';
查詢為: SELECT DISTINCT title FROM sample_table WHERE username = 'admin'
。
查詢返回的每一行都是一個PHP 數組 ,該數組在鍵title
下包含一個值。 這就是您要打印的內容。 使用方括號語法訪問值: $data['title']
。
使用json_encode()
將數據放入網頁沒有任何意義。 必須使用htmlspecialchars()
將用於生成HTML的動態數據正確編碼為HTML。
您的代碼應為:
foreach($query as $data)
{
echo '<li>' . htmlspecialchars($data['title']) . '</li>';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.