如何在 Javascript 函数中添加 php 变量/数组(在 jsGrid({ controller }) 中)

how to add php variable(s)/arrays in Javascript function ( in jsGrid({ controller }) )

我正在为我的 php 应用程序使用 http://js-grid.com。我选择这个库用于内联 edit/update/add/delete。现在我想查看来自数据库的 $variables$array 数据。这是脚本

<script>
    $(function() {
        $("#jsGrid").jsGrid({
            pageButtonCount: 5,
            deleteConfirm: "Do you really want to delete the client?",
            controller: db,
            fields: [
                { name: "Name", type: "text", width: 150 },
                { name: "Age", type: "number", width: 50 },
                { type: "control" }
            ]
        });

    });
</script>

在上面的代码中,我得到了一个名为 controller 的 属性,它正在渲染 db (data)db 来自文件 db.js。该文件如下所示:

(function() {
var db = {
    loadData: function(filter) {
        return $.grep(this.clients, function(client) {
            return (!filter.Name || client.Name.indexOf(filter.Name) > -1)
                && (!filter.Age || client.Age === filter.Age)
                && (!filter.Address || client.Address.indexOf(filter.Address) > -1)
                && (!filter.Country || client.Country === filter.Country)
                && (filter.Married === undefined || client.Married === filter.Married);
        });
    },
    insertItem: function(insertingClient) {
        this.clients.push(insertingClient);
    },
    updateItem: function(updatingClient) { },
    deleteItem: function(deletingClient) {
        var clientIndex = $.inArray(deletingClient, this.clients);
        this.clients.splice(clientIndex, 1);
    }
};

window.db = db;

db.countries = [
    { Name: "", Id: 0 },
    { Name: "United States", Id: 1 },
];

db.clients = [
    {
        "Name": "Otto Clay",
        "Age": 61,
    },
    {
        "Name": "Connor Johnston",
        "Age": 73,
    }
];

}()); 

我也遵循了 github 文档 https://github.com/tabalinas/jsgrid-php。但我不知道如何将我的 php $variable or $arrayjavaScripts 放在我的视图中。

我想要什么: 我想将 $array 作为 controller : db 调用到 javaScripts 部分。

错误: 当我使用 controller: <?php echo $array; ?>', its returning null cause I can not call as they called as default fromdb.js`

请帮我看看如何在 javaScript 中调用 php $variable or $array 而不是 controller: db 提前致谢。

controller 选项定义行为,您不能将静态数据放在那里。 但是有一个选项 data,您可以在其中放置静态值(例如 php 中的示例)。

您的另一个选择是定义 controller.loadData:

controller: {
    loadData: function() {
        return $.ajax({
            type: "GET",
            url: "/clients/"
        });
    },

并在服务器上提供所请求的信息

switch($_SERVER["REQUEST_METHOD"]) {
    case "GET":
        $result = $clients->getAll();
        break;
    ...
}

header("Content-Type: application/json");
echo json_encode($result);

您可以在 jsgrid-php repo 中找到实现。