2017-12-18 268 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調用多個數據的方式 –

相關問題