2017-01-17 9 views
0

私のPHP Webアプリケーションでページネーションを実装しようとしています。私はDB用のSQL Serverを使用しています。PHP&MS SQL Serverを使用してURLにページ番号を送信せずにページ番号を付けよう

私のWebアプリケーションでは、htmlテーブルに表示されるクライアントのリストがあります。私は2つのボタンを持っていますを無効にしてください r。 (私は「ビューすべて」または「無効なユーザー」は、最初の10件のレコードを示しをクリックした場合、私は意味。)

私のページングが最初の試みのために正常に動作します。ページ番号2のページングリンクをクリックすると、URLが....com/?pagenum=2と表示され、次の11-20レコードが表示されますが、をすべて表示すると、またはが無効になります。ボタン、それは同じリンク....com/?pagenum=2にとどまります。私は再びビューをクリックしたときに、私はリンクから?pagenum=2を削除するにはどうすればよい

はすべてまたはは無効ボタンを表示します。

OR

URLにページ番号を送信せずにページングを行うための方法はありますか?

<input type="submit" id="view_all" class="theme-btn" value="View Current Users" name="view_all"/> 
<input type="submit" class="theme-btn" value="Show Disabled Users" name="show_disabled"/> 

$tsql = "SELECT COUNT(SubscriptionID) FROM Subscription"; 
$stmt = sqlsrv_query($conn, $tsql); 
$rowsReturned = sqlsrv_fetch_array($stmt); 

    $numOfPages = ceil($rowsReturned[0]/$rowsPerPage); 
    for($i = 1; $i<=$numOfPages; $i++) 
    { 
     $pageNum = "?pageNum=$i"; 
     print("<a href=$pageNum>$i</a>&nbsp;&nbsp;"); 
    } 


$sql_query = "SELECT * FROM 
      (SELECT ROW_NUMBER() OVER(ORDER BY ClientID) 
      AS ID, Name FROM Client); 


if(isset($_GET['pageNum'])) 
{ 
    $highRowNum = $_GET['pageNum'] * $rowsPerPage; 
    $lowRowNum = $highRowNum - $rowsPerPage + 1; 
    echo "high:$highRowNum, low:$lowRowNum"; 
} 
else 
{ 
    $lowRowNum = 1; 
    $highRowNum = $rowsPerPage; 
} 

if(isset($_POST['show_disabled'])) 
{ 
    if(($emr!= 0) OR ($pas!= 0) OR ($pc!= 0)) 
    { $flag=0; 
    $sql_query = $sql_query . " WHERE Subscription.status = -1 AND ("; 
    GOTO C; 
    } 
} 

if(isset($_POST['view_all'])) 
{ 
    if(($emr!= 0) OR ($pas!= 0) OR ($pc!= 0)) 
    { $flag=0; 
    $sql_query = $sql_query . " WHERE (Subscription.status = 1 OR Subscription.status IS NULL) AND ("; 
    GOTO C; 
    } 


C: 

$sql_query = $sql_query. "AS TEST WHERE ClientID BETWEEN ? AND ? + 1" 

$params = array(&$lowRowNum, &$highRowNum); 
$stmt = sqlsrv_query($conn, $sql_query, $params, array("Scrollable" => 'static')); 
if($stmt === false) {die(print_r(sqlsrv_errors(), true));} 
GOTO A; 
} 


A: 
if ($stmt) 
{ 
    $rows = sqlsrv_has_rows($stmt); //echo $rows; 
    if ($rows === false) 
     echo "</br><center>There is no data for this selection.</center><br />"; 
    else 
    {     
     $rowsReturned = sqlsrv_num_rows($stmt); if ($rowsReturned === false) echo "Error in retrieveing row count."; 
else echo "rowsReturned:".$rowsReturned." " ; 

      echo "<table style='font-size: small; border-collapse: collapse;' id='clients'>    
      <th>SR NO</th> 
      <th>ID</th> 
      <th>Name</th> 


     echo "<tr><td>".$sr."</td><td>". $row['ID']."</td><td>". $row['Name']."</td></tr> 

     $sr++; 
    } 
} 
+0

いくつかの(関連性のある)コードを表示する必要があります。それがなければ誰もあなたを助けることができません。 – Jeff

+0

私はコード – User27

+0

を追加しました。これはあなたがここにある複雑な文法ですが、この '$ highRowNum = $ rowsPerPage;'(if(isset ['pagenum']))else {} ') '$ highRowNum = $ numOfPages * $ rowsPerPage;' – Jeff

答えて

0

あなたは...あなたはページネーションを適用し、functionalitiを検索する を助けるjqueryのDataTableのプラグインを使用するかは、Ajaxのページ付けで行くことができます。

関連する問題