簡體   English   中英

在php中刪除數組括號-AJAX請求

[英]Removing array brackets in php - AJAX request

我試圖從數據庫中調用查詢並顯示它時刪除數組括號,但是我得到以下結果:

  • [ “TITLE1”]
  • [ “標題2”]
  • [ “TITLE3”]

我需要它顯示如下所示:

  • TITLE1
  • 標題2
  • TITLE3

我以為添加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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM