2017-12-18 222 views
0

我有一个正常的$.postAJAX请求是进入这个页面是否有可能从AJAX请求中获取rowCount()以在分页中使用它?

ajax.php

<?php 
if (isset($_POST['offset'])) { $offset = $_POST['offset']; } else { $offset = 0; } 
$sql = " 
SELECT a.name, b.fname, c.lname, d.mname FROM table a 
LEFT JOIN table-b b ON a.id = b.id 
LEFT JOIN table-c c ON a.id = c.id 
LEFT JOIN table-d d ON a.id = d.id 
LIMIT $offset, 5 
"; 
while($r = $stmt->fetch()){ 
     ... 
} 
$total = $stmt->rowCount(); 
$pages = ceil($total/5); 
$offset = ($page - 1) * 5; 
?> 

眼下越来越之后$total$pages$offset是我的尝试是使在ajax.php内分页,但我已被抛出一个stalement,因为我不知道如何做到这一点。

我最后的想法得到$total$pages$offset出从第一AJAX请求data请求,然后重新发送另一个AJAX要求onclickingpaginationmain.php页。

那是正确的做法,是否有可能从AJAX要求retreive PHP的数据?或者有另一种适当的方式来处理paginationAJAX

+1

使用'datatable'进行简单的操作。 –

+0

你并没有真正返回任何东西。你只是设置php变量。最好的办法是将所有你想要的数据添加到php数组或对象中,然后从json编码对象中返回字符串返回值 – JoshKisb

+0

@JoshKisb所以我应该做的是'$ limits = ['total'=> $ total''pages '=> $ pages,'offset'=> $ offset]; json_encode($ limits);'然后使用它,使用安全吗? – Toleo

回答

0

将所有必需的东西以阵列状:

$arr = [ 
'total' = $stmt->rowCount(); 
'pages' = ceil($total/5); 
'offset' = ($page - 1) * 5; 
// add as many variable as you want 
]; 

,并返回它作为一个json对象像:

echo json_encode($arr); 

在JS侧,相应地解析它。

+0

这样做是用AJAX请求处理分页最安全和最合适的方式吗? – Toleo

+0

这不仅是为了处理分页与AJAX请求,这是在任何情况下返回ajax调用多个数据的方式 –

相关问题