【问题标题】:jTable Not DisplayingjTable 不显示
【发布时间】:2012-07-19 13:45:46
【问题描述】:

我正在尝试建立一个包含 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 中显示任何内容。

【问题讨论】:

  • 您能否通过您的控制台确认 AJAX 请求已成功完成?
  • @Colin - 我不确定我明白你在问什么。我该如何确认?
  • 我对 jTable 不是很熟悉,但我认为它会向您的 .php 文件发出 AJAX 请求。要检查的一件事是您从该电话中获得了预期的结果。您的浏览器控制台应该有一个“网络”(或类似的)选项卡,它会在发出 AJAX 请求时显示它。您可以检查发送了哪些参数,当然还有返回哪些数据(如果有)。确认那里一切正常可能会很好。

标签: javascript jquery html jquery-jtable


【解决方案1】:

试试下面,让我知道它是否有效,我没有很多经验,但如果你需要,我什至为它做了一个自定义搜索功能。

我使用单个操作文件,但我使用 $_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);

【讨论】:

    【解决方案2】:

    要调试它,我将从三个角度开始: 1.查看开发者工具中的AJAX响应。在网络选项卡上的 Chrome 中,按 XHR 过滤。首先验证是否正在进行 AJAX 调用并查看响应。 2. 验证 AJAX 响应是否进入 jtable 上下文。只需在您的字段属性下添加这些行:

    fields: {
        ...
    },
    recordsLoaded: function(event, data) {
        console.log(data);
    }
    

    3。在浏览器控制台中展开此 console.log 对象并查看数组项。 jtable 区分大小写,因此生成的参数必须具有相同的拼写和大小写。更改 jtable 描述中的字段名称以匹配 db 字段名称通常很容易。

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 2014-04-21
      • 1970-01-01
      • 2019-06-08
      • 2014-09-29
      • 1970-01-01
      • 2012-04-03
      相关资源
      最近更新 更多