gpt4 book ai didi

javascript - 如何加载从 php 文件获取的 JsGrid 表中的行?

转载 作者:行者123 更新时间:2023-11-30 22:23:50 24 4
gpt4 key购买 nike

我试图从 MySQL 的表中加载数据行。我在 PHP 中使用了 jsgrid。我的两个 php 文件连接到本地主机数据 enzyme 并使用 mysqli 函数从表中选择行,并将查询结果复制到数组中并通过 json_encode() 发送到我放置 jsgrid 代码的 HTML 文件。然后,我通过 <iframe> 将 html 文件调用到其他 PHP 文件中。 html 标签。

PHP 文件的名称是:newsConfcontrollgetnewscat

HTML 文件:basic.html

controll.php 中:

public function newsConfig(){
$this->CONN = new Conn();//class from external page to connect DB
try{
$dfnet = $this->CONN->open_connect();
$qnco = mysqli_query($dfnet,"select * from category");
if(!$qnco) return "";
else{
while($qncoarray = mysqli_fetch_row($qnco)){
//here I try copy rows into array
$nnopCo[] = array(
'ID' => $qncoarray['ID'],
'Name' => $qncoarray['Name']
);
}
return $nnopCo;
}
$this->CONN->close_connect($dfnet);
}
catch(Exception $er){
}

getnewscat.php 中:

<?php require_once "../../bin/controll.php";
$db_controll = new Controll();
$cat_news = new ArrayObject($db_controll->newsConfig());

header('Content-type: application/json');
echo json_encode($cat_news->getArrayCopy());

?>

在basic.html中:与jsgrid demo中的文件相同,但我更改了javascript中的代码并取消了db.js文件

$(function() {
$("#jsGrid").jsGrid({
height: "70%",
width: "50%",//100%
selecting: false,
filtering: false,
editing: false,
sorting: false,
paging: true,
autoload: true,
pageSize: 15,
pageButtonCount: 5,
controller: {
loadData: function(clients){
var d = $.Deferred();
$.ajax({url: "../bin/getnewscat.php", dataType: "json",function(obj){
for (var i = 0; i < obj.length; i++) {
/*res[i]=data.i;
i++;*/
clients = {
"ID": obj.ID,
"Name": obj.Name
};
}
}
}).done(function(response) {
d.resolve(response.value);
});
return d.promise();
}

newsConf.php 中:该文件应调用 basic.html 并给出结果通过这个:

<iframe name="demo" src="jsgrid-1.2.0/demos/basic.html"></iframe>

但结果是空的,我不知道为什么?但是我更改了代码但没有成功。
我在这里错过了什么?

更新

参见 my update below .

最佳答案

done 函数应该可以工作。删除 success 处理程序并将您的映射放入 done 处理程序。然后将 调试器 放入完成处理程序中,以确保您在 response 中得到什么。然后相应地映射响应并解决延迟。

loadData: function(clients){

var d = $.Deferred();

$.ajax({
url: "../bin/getnewscat.php"
}).done(function(response) {
// put a debugger here to ensure that your response have 'value' field
var clients = $.map(response.value, function(item) {
return {
ID: item.SomeID,
Name: item.SomeName
};
});

d.resolve(clients);
});

return d.promise();
}

我不确定您是否需要映射。也许你可以在最后删除它。但是在 done 处理程序中执行所有操作并检查响应的格式。

关于javascript - 如何加载从 php 文件获取的 JsGrid 表中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35903560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com