Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP中的分页jTable_Javascript_Php_Jquery Jtable - Fatal编程技术网

Javascript PHP中的分页jTable

Javascript PHP中的分页jTable,javascript,php,jquery-jtable,Javascript,Php,Jquery Jtable,如何在jTable和PHP中使用分页? 我在employeeTable.php中有下面的代码 <script src="jtable.2.4.0/jquery.jtable.min.js" type="text/javascript"></script> //Get record count $result = mysql_query("SELECT COUNT(*) AS RecordCount FROM employee;"); $r

如何在jTable和PHP中使用分页? 我在employeeTable.php中有下面的代码

    <script src="jtable.2.4.0/jquery.jtable.min.js" type="text/javascript"></script>

    //Get record count
    $result = mysql_query("SELECT COUNT(*) AS RecordCount FROM employee;");
    $row = mysql_fetch_array($result);
    $recordCount = $row['RecordCount'];

    //Get records from database
    $result = mysql_query("SELECT * FROM employee ORDER BY '" . $_REQUEST["jtSorting"] . "' LIMIT '" . $_REQUEST["jtStartIndex"] . "','" . $_REQUEST["jtPageSize"] . "';");

    //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['TotalRecordCount'] = $recordCount;
    $jTableResult['Records'] = $rows;
    print json_encode($jTableResult);
如果我更改$_请求[“jtSorting”]=rowname,$_请求[“jtStartIndex”]=number,$_请求[“jtPageSize”]=number,它会工作。 但如果我不更改它,它将显示“与服务器通信时出错”

以下是jquery.jtable.min.js中的代码,其中有关于jtSorting、jtStartIndex、jtPageSize的行

/* Adds jtSorting parameter to a URL as query string.
    *************************************************************************/
    _addSortingInfoToUrl: function (url) {
        if (!this.options.sorting || this._lastSorting.length == 0) {
            return url;
        }

        var sorting = [];
        $.each(this._lastSorting, function (idx, value) {
            sorting.push(value.fieldName + ' ' + value.sortOrder);
        });

        return (url + (url.indexOf('?') < 0 ? '?' : '&') + 'jtSorting=' + sorting.join(","));
    },

    /* Overrides _createJtParamsForLoading method to add sorging parameters to jtParams object.
    *************************************************************************/
    _createJtParamsForLoading: function () {
        var jtParams = base._createJtParamsForLoading.apply(this, arguments);

        if (this.options.sorting && this._lastSorting.length) {
            var sorting = [];
            $.each(this._lastSorting, function (idx, value) {
                sorting.push(value.fieldName + ' ' + value.sortOrder);
            });

            jtParams.jtSorting = sorting.join(",");
        }

        return jtParams;
    }

});
})(jQuery);
/*将jtSorting参数作为查询字符串添加到URL。
*************************************************************************/
_addSortingInfoToUrl:函数(url){
如果(!this.options.sorting | | this._lastSorting.length==0){
返回url;
}
var排序=[];
$.each(此.\u最后排序,函数(idx,值){
排序.push(value.fieldName+''+value.sortOrder);
});
返回(url+(url.indexOf(“?”)<0?“?”:“&”)+“+jtSorting=”+sorting.join(“,”);
},
/*重写_createjtparamsforload方法,以将sorging参数添加到jtParams对象。
*************************************************************************/
_createJtParamsForLoading:函数(){
var jtParams=base._createjtparamsforload.apply(这是参数);
if(this.options.sorting&&this.\u lastSorting.length){
var排序=[];
$.each(此.\u最后排序,函数(idx,值){
排序.push(value.fieldName+''+value.sortOrder);
});
jtParams.jtSorting=sorting.join(“,”);
}
返回jtParams;
}
});
})(jQuery);

谁能帮我理解一下吗?

我想你应该经历一下。

它需要jQuery.Deferred来返回数据

当作

listAction: function (postData, jtParams) {
    return $.Deferred(function ($dfd) {
        $.ajax({
            url: '/Employee_Controller/EmployeeList_method?jtStartIndex=' + jtParams.jtStartIndex + '&jtPageSize=' + jtParams.jtPageSize + '&jtSorting=' + jtParams.jtSorting,
            type: 'POST',
            dataType: 'json',
            data: postData,
            success: function (data) {
                $dfd.resolve(data);
            },
            error: function () {
                $dfd.reject();
            }
        });
    });
}

手动发布它的值。我希望这可能会有所帮助。

选项将在$\u GET object中接收

比如:

例如:

$query="select * FROM products ORDER BY $jtSorting LIMIT $jtStartIndex, $jtPageSize;";
在jtable设置中:

paging: true, //Enable paging
pageSize: 10, //Set page size (default: 10)
sorting: true, //Enable sorting
defaultSorting: 'name ASC' ,
            actions: {
                listAction: 'data/products.php'//Set default sorting
            },
...
$query="select * FROM products ORDER BY $jtSorting LIMIT $jtStartIndex, $jtPageSize;";
paging: true, //Enable paging
pageSize: 10, //Set page size (default: 10)
sorting: true, //Enable sorting
defaultSorting: 'name ASC' ,
            actions: {
                listAction: 'data/products.php'//Set default sorting
            },
...