我正在尝试建立一个包含jQuery和jTable的网站。因此,我一直在尝试使用网站提供的示例jTable脚本,但我似乎无法获得任何返回的输入。文件路径都工作,我检查以确保加载jQuery(它是)。如果有的话,我真的不确定我做错了什么。谢谢!
jTable文件:
<html>
<head>
<link href="JQueryUI/css/smoothness/jquery-ui-1.8.21.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<link href="jtable/themes/standard/blue/jtable_blue.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jtable/jquery.jtable.js"></script>
</head>
<title>Under Construction</title>
Hello World
<div id="PersonTableContainer"></div>
<script type="text/javascript">
$(document).ready(function () {
$('#PersonTableContainer').jtable({
title: 'Table of people',
actions: {
listAction: 'PersonList.php'
createAction: 'CreatePerson.php'
updateAction: 'UpdatePerson.php'
deleteAction: 'DeletePerson.php'
},
fields: {
PersonId: {
key: true,
create: false,
edit: false,
list: false
},
Name: {
title: 'Author Name',
width: '40%'
},
Age: {
title: 'Age',
width: '20%'
},
RecordDate: {
title: 'Record date',
width: '30%',
type: 'date',
create: false,
edit: false
}
}
});
$('#PersonTableContainer').jtable('load');
});
PersonList.php
<?php
$link = new mysqli("localhost", "user", "pass", "people");
$query = "SELECT * FROM people";
$results = mysqli_query($link, $query);
$rows = array();
while($row = mysqli_fetch_assoc($results))
{
$rows[] = $row;
}
$jTableResult = array();
$jTableResult['Result'] = "OK";
$jTableResult['Records'] = $rows;
print json_encode($jTableResult);
}
?>
PersonList.php在终端返回正确的输出,它似乎没有在网站/ jTable中显示任何内容。
答案 0 :(得分:0)
尝试以下内容,让我知道它是否有效,我没有很多经验,但如果你需要它我甚至可以为它做一个自定义搜索功能。
我使用单个动作文件,但我使用$ _REQUEST,而不是像你那样使用不同的文件。
//Get records from database
$result = mysql_query("SELECT * FROM people;");
//Add all records to an array
$rows = array();
while($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
//Return result to jTable
$jTableResult = array();
$jTableResult['Result'] = "OK";
$jTableResult['Records'] = $rows;
print json_encode($jTableResult);
答案 1 :(得分:0)
调试这个我从三个角度开始: 1.查看开发人员工具中的AJAX响应。在“网络”标签上的Chrome中,按XHR过滤。首先验证是否正在进行AJAX调用并查看响应。 2.验证AJAX响应是否进入jtable上下文。只需在您的字段属性下添加这些行:
fields: {
...
},
recordsLoaded: function(event, data) {
console.log(data);
}
3。在浏览器控制台中展开此console.log对象并查看数组项。 jtable区分大小写,因此生成的参数必须具有相同的拼写和大小写。通常很容易只更改jtable描述中的字段名称以匹配db字段名称。