php - jTable 中的 jQuery AJAX 调用

标签 php jquery mysql ajax jquery-jtable

我正在尝试在 jTable 中实现分页。 谁能帮我理解下面的代码?我已阅读 jQuery Ajax 文档并了解除 URL 之外的所有内容,具体来说 url 指的是什么?为什么 url 字段的格式是这样的?例如为什么/demo/studentlist?jtStartIndex 这意味着什么?

listAction: function (postData, jtParams) {
    return $.Deferred(function ($dfd) {
        $.ajax({
            url: '/Demo/StudentList?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();
            }
        });
    });
}

目前我有一个 php 脚本正在调用 mysql 数据库中的存储过程。在这种情况下,AJAX 是实现分页的唯一方法吗?或者我可以通过执行以下操作来使用 jTable 实现上述分页:

(不包括冗余代码)

//open database etc
$offset = $_POST['jtStartIndex'];
$amount = $_POST['jtPageSize'];
$result = $mysqli -> query ("CALL Proc($offset, $amount);
//while loop using fetch_assoc() to assign row objects to rows array
$jtableResults['Result'] = "OK";
$jtableResults['Records'] = $rows;
//close
echo json_encode($jtableResults);

MySQL程序:

CREATE DEFINER='user''@'%' PROCEDURE 'Proc' (offset INTEGER, amount INTEGER)
BEGIN
SELECT * FROM reports Order By idReports ASC LIMIT offset, amount;
END

我相信我不能执行上述操作,因为 jTable 期望 jtParams 对象返回到 AJAX 调用中?

最佳答案

有什么不明白的,URL 是 $.ajax 调用中最重要的部分,基本上它是您需要调用以获取一些数据的端点。此 URL 可以是绝对 URL,如 this案例:

var url = 'http://api.themoviedb.org/3/',
    mode = 'search/movie?query=',
    movieName = '&query='+encodeURI($('#movie-title').val()),        
    key = '&api_key=470fd2ec8853e25d2f8d86f685d2270e';      

$.ajax({
    url: url + mode + key + movieName ,
    dataType: "jsonp",
    async: true,
    success: function (result) {
        ajax.parseJSONP(result);
    },
    error: function (request,error) {
        alert('Network error has occurred please try again!');
    }
});

或者它可以是相对的,就像你的情况一样。在您的情况下,url 目标文件只是一些服务器端类(ASP.NET,PHP 通常具有 .php 扩展名),它接受某些参数并返回 JSON 响应,如下所示:

{
 "Result":"OK",
 "Record":{"PersonId":5,"Name":"Dan Brown","Age":55,"RecordDate":"\/Date(1320262185197)\/"}
}

因为您是 PHP 开发人员,所以您的目标 URL 如下所示:

demo/StudentList.php?jtStartIndex=' + jtParams.jtStartIndex + '&jtPageSize=' + jtParams.jtPageSize + '&jtSorting=' + jtParams.jtSorting

我忘了最后一件事。在使用 $.ajax 调用时,当客户端独立于服务器端工作(例如混合移动应用程序)或者您想要调用某些公共(public) API(例如 IMDB、雅虎天气等)。当您在经典网站上工作时,将使用相对 URL,其中目标 URL 是您的 Web 服务器,基本上与您的网站相同的源。

关于php - jTable 中的 jQuery AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24169318/

相关文章:

php - 获取数据数组时出现 Codeigniter 错误

jquery - 如何在一个函数中实现 mouseenter、mouseleave 切换

mysql - 不允许从函数返回结果集

mysql - 查找第二个最近日期的最有效方法

php - 生成面包屑的递归函数

PHP:如何获取相关文件的URL

javascript - "please wait"的动画未使用 jQuery 加载

jquery - 如何为每个容器 div 中的每组子 div 设置高度?

java - .hbm hibernate 文件中的复杂 order-by 子句

php - 在表单中用作 GET 的多个 OPTION 值