【问题标题】:How to send JSON data from PHP corectly?如何正确地从 PHP 发送 JSON 数据?
【发布时间】:2018-12-01 08:31:40
【问题描述】:

我正在尝试使用 jQuery 的 $.getJSON 函数从 PHP 获取 JSON 来填充表格。在 PHP 端,我使用 echo json_encode。它工作正常,表格被填满,但数组的表示也可以在网站顶部看到,如下所示:

"[{"id":"1","0":"1","author":"托尔金","1":"托尔金","title":"Gyuruk Ura","2" :"Gyuruk Ura","isbn":"8759","3":"8759"},{"id":"2","0":"2","author":"托尔金","1 ":"托尔金","title":"霍比特人","2":"霍比特人","isbn":"8759","3":"8759"}]"

jQuery 代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
        $(document).ready(function () {
            let books = "";
            $.getJSON( "ViewBookstore.php", function( data ) {
                $.each( data, function( index, value ) {
                    books += "<tr>";
                    books += "<td>"+value.author+"</td>";
                    books += "<td>"+value.title+"</td>";
                    books += "<td>"+value.isbn+"</td>";
                    books += '<td>' +
                    '<button class="btn btn-info" id="edit">Edit</button>' +
                        '<button class="btn btn-danger" id="delete">Delete</button>' +
                        '</td>';
                    books += "</tr>";
                });
                $("#books-table").append(books);
            });
        });
</script>

我的 PHP 代码:

 class ViewBookstore extends ControllerBookstore
{
 public function showAllBooks(){
        echo json_encode($this->getAllBooks());
    }
}

$view = new ViewBookstore();
$view->showAllBooks();

【问题讨论】:

    标签: javascript php jquery json


    【解决方案1】:

    您的 jquery 代码在 ViewBookstore.php 中?因此您的 php 代码正在运行并在您的页面顶部显示该结果。为了防止你可以有一些这样的控制语句:

    这个例子很简单

    改变

    $.getJSON( "ViewBookstore.php", function( data ) {
    

    $.getJSON( "ViewBookstore.php?show_books=true", function( data ) {
    

    并在您的 ViewBookstore.php 中更改

    $view = new ViewBookstore();
    $view->showAllBooks();
    

    if(!empty($_GET['show_books']))
    {
        $view = new ViewBookstore();
        $view->showAllBooks();
    }
    

    【讨论】:

    • 感谢您的帮助,这就是解决方案。 :)
    猜你喜欢
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2011-04-01
    • 2016-09-18
    • 2017-12-21
    • 2013-07-19
    • 2015-01-19
    相关资源
    最近更新 更多