如何在 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 $array
和 javaScripts
放在我的视图中。
我想要什么:
我想将 $array
作为 controller : db
调用到 javaScripts 部分。
错误:
当我使用 controller: <?php echo $array; ?>', its returning null cause I can not call as they called as default from
db.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 中找到实现。
我正在为我的 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 $array
和 javaScripts
放在我的视图中。
我想要什么:
我想将 $array
作为 controller : db
调用到 javaScripts 部分。
错误:
当我使用 controller: <?php echo $array; ?>', its returning null cause I can not call as they called as default from
db.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 中找到实现。