我试图从 MySQL 的表中加载数据行。我将 jsgrid 与 PHP 一起使用。我的两个 php 文件连接到 localhost 数据库并使用 mysqli 函数从表中选择行,并将查询结果复制到数组中并发json_encode()
送到我放置 jsgrid 代码的 HTML 文件。<iframe>
然后,我通过html 标签将 html 文件调用到其他 PHP 文件中。
PHP 文件的名称是: newsConf、controll和getnewscat
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 演示的同一个文件,但我更改了 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>
但是结果是空的,我不知道为什么?但是我更改了代码但没有成功。
我在这里错过了什么?
更新
请参阅下面的更新。