Показывать данные в сетке из источника данных в YUI? - PullRequest
1 голос
/ 10 марта 2020

Я приложил свой код в этом вопросе.

Я использую YUI-3 для отображения данных в формате сетки из источника данных

Не удалось получить данные из источника данных. Но данные передаются из URL.

Моя сетка показывает No data to display всегда ..

<script src="http://yui.yahooapis.com/3.18.1/build/yui/yui-min.js"></script>
<script>
YUI().use("datatable", "datasource-get", "datasource-jsonschema", "datatable-datasource", function (Y) {

    var url = "http://domainname.com/trans/sample_json.php?format=json",
        query = "&return=true",
        dataSource,
        table;

    dataSource = new Y.DataSource.Get({ source: url });

    dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
        schema: {
            resultListLocator: "query.results.result",
            resultFields: [
                "Title",
                "Phone",
                {
                    key: "Rating",
                    locator: "Rating.AverageRating",
                    parser: function (val) {
                        // YQL is returning "NaN" for unrated restaurants
                        return isNaN(val) ? -1 : +val;
                    }
                }
            ]
        }
    });

    table = new Y.DataTable({
        columns: [
            "Title",
            "Phone",
            {
                key: "Rating",
                formatter: function (o) {
                    if (o.value === -1) {
                        o.value = '(none)';
                    }
                }
            }
        ],
        width:"100%",sortable: true,
        summary: "Pizza places near 98089",
        caption: "Table with JSON data from Datasource...."
    });

    table.plug(Y.Plugin.DataTableDataSource, { datasource: dataSource });

    table.render("#pizza");

    table.datasource.load({

        callback: {
            success: function (e) {
                table.datasource.onDataReturnInitializeTable(e);
            },
            failure: function() {
                Y.one('#pizza').setHTML(
                    'The data could not be retrieved. Please <a href="?mock=true">try this example with mocked data</a> instead.');
            }
        }
    });
});
</script>

Это sample_json.php файл. Здесь я отправляю данные в формате JSON.

<?php
echo '{"query": {"count": 2,"created": "2013-06-04T22:50:08Z","lang": "en-US","results": {"result":[{"Title" : "Giovannis Pizzeria","Phone" : "(408) 734-4221","Rating": {"AverageRating": "4"}},{"Title" : "Pizza","Phone" : "(800) 555-1212","Rating": {"AverageRating":"NaN"}}]}}}';
?>

Я не смог найти, где находится ошибка. Может ли кто-нибудь мне помочь .?

1 Ответ

0 голосов
/ 12 марта 2020

ваш PHP не выглядит как возвращающий JSON данные. Попробуйте это?

<?php
    $data = {"query": {"count": 2,"created": "2013-06-04T22:50:08Z","lang": "en-US","results": {"result":[{"Title" : "Giovannis Pizzeria","Phone" : "(408) 734-4221","Rating": {"AverageRating": "4"}},{"Title" : "Pizza","Phone" : "(800) 555-1212","Rating": {"AverageRating":"NaN"}}]}}};

    header('Content-Type: application/json');

    echo json_encode($data);
...