0

私は現在、表示する数千のレコードを持つグリッドを持つPHP mysqlアプリケーションに取り組んでいます.現在、要件は通常の方法でページ分割されることを望んでいません(ページングリンク1,2,3などを表示することにより)ただし、ユーザーがリンクShow More Resultsをクリックしたときに実行します。アンカー リンクをクリックすると、サーバーからレコードの次のバッチが取得されます。

     offset and limit parameters in a sql query
     select * from abc limit,offset;

したがって、この場合、私の制限は「20」ですが、クエリに送信されるオフセットの計算はどのように行うことができますか? クリック時に ajax リクエストを送信する基本を知っています。クリック時に呼び出されるこのようなもの

     $.ajax({
       //request parameters and success and failure callback

     })    

これに関するヘルプやガイダンスは非常に役立ちます。
時間をありがとう。

4

1 に答える 1

1

ねえ、私はあなたにアイデアだけを与えています:

リンクがあるテーブル リンクと列名もリンクがあると考えてください。

まず、html で直接 php を使用します。

INDEX.HTML

<html>
<head>
<script type="text/javascript" src="jquery.js">
<script type="text/javascript">
$(document).ready( function() {
$("#more").click( function() {
var get = document.getElementsByClassName('num');
var numberofget = "limitnext="+get.length;
$.ajax({
type : "POST",
url : "more_results.php",
data : numberofget,
cache : false,
success : function(html){
$(this).remove();
$("#results").append(html);
}
});
});
});
</head>
<body>
<div id="results">
<?php

include("db.php");

$query1 = "SELECT * FROM Links LIMIT 0 , 20";
$query2 = "SELECT * FROM Links";
$result1 = mysql_query($query1);
$result2 = mysql_query($query2);
$count = mysql_num_rows($result2);

while($rows=mysql_fetch_array($result1)){
$links=$rows['links'];
echo "<div class='num'>".$links."</div>";
}

if($count>=20){
echo "<a id='more' href='#'>More Results of Links</a>";
}

?>
</div>
</body>
</html>

more_results.php

<?php

include "db.php";

$limit=$_POST['limitnext'];
$limitaddup=$_POST['limitnext']+20;

$query1 = "SELECT * FROM Links LIMIT ".$limit." , ".$limitaddup.";
$query2 = "SELECT * FROM Links";    
$result1 = mysql_query($query1);    
$result2 = mysql_query($query2);
$count = mysql_num_rows($result2);


while($rows=mysql_fetch_array($result1)){    
$links=$rows['links'];
echo "<div class='num'>".$links."</div>";
}


if($count>=$limitaddup){    
echo "<a id='more' href='#'>More Results of Links</a>";    
}    
?>
于 2012-10-25T05:33:51.847 に答える