0

jQueryとjTableを含むWebサイトを構築しようとしています。そのため、Webサイトが提供するサンプルの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はターミナルで適切な出力を返しますが、website/jTableに何も表示されていないようです。

4

2 に答える 2

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);
于 2012-09-05T17:07:24.757 に答える
0

これをデバッグするには、次の 3 つの角度から始めます。1. 開発者ツールで AJAX 応答を確認します。[ネットワーク] タブにある Chrome で、XHR でフィルタリングします。まず、AJAX 呼び出しが行われていることを確認し、応答を確認します。2. AJAX 応答が jtable コンテキストに入ることを確認します。fields 属性の下に次の行を追加するだけです。

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

3. ブラウザー コンソールで、この console.log オブジェクトを展開し、配列項目を確認します。jtable では大文字と小文字が区別されるため、結果のパラメーターのスペルと大文字と小文字は同じでなければなりません。通常、jtable の説明のフィールド名を db フィールド名と一致するように変更するのは非常に簡単です。

于 2014-11-17T02:41:11.550 に答える