0

jqueryを使用してデータベースから多数の結果をページングするのがどれほど難しいかについての情報を探しています。すでにプラグインを見つけましたが、必要なものではないと思います。

8つのテキストボックスを持つフォームがあります。これらの 8 つのテキスト ボックスに最初のデータベース結果を入力し、さらに結果がある場合はページングを表示したいと考えています。さらに結果がある場合、ユーザーは次のボタンをクリックして、新しいデータをテキストボックスにインポートできるはずです。

誰にも提案はありますか?

4

3 に答える 3

0

使用している基盤となるプラットフォームについては言及していません。ASP.NET MVC ですか?ルビーオンレール? ページングのサポートは、通常、基盤となるプラットフォームに組み込まれています。

AJAX または JSON 呼び出しを行いたい場合、jQuery は確かにそれを行うことができますが、その呼び出しがどのように見えるかは、使用しているプラ​​ットフォームによって異なります。

それが Ruby の場合は、ここでいくつかのガイダンスを見つける必要があります: http://www.sitepoint.com/article/ajax-jquery/

于 2009-06-05T04:59:23.247 に答える
0

これを行う方法 (または私が行う方法) は、ajax 呼び出しをページネーション リンクにバインドすることです。リンクには URL が組み込まれており、どのページを参照しているかがわかります。

例えば

<a class="pager" href="/ajax_pages/get_results.php?page=3"> 3 </a>

jquery live 関数を使用して、これらのリンクへのクリックをインターセプトできるようになりました。

$(function() {
      $('a.pager').live('click',function() {
             var url = $(this).attr('href');
             $('#destination').load(url);
      }
 }

「ライブ」を使用しているため、新しく生成された HTML を手動でバインドする必要はありません。そのため、リンクはすぐに使用できるようになります。

次に、要求されたページと制限 (バックエンド サービスが認識している必要があります) に基づいてオフセット値を生成するだけです。

代替方法は非常に近いですが、javascript でさらに作業が必要です。ページャーが呼び出すサービスが json でエンコードされたデータを返すようにします。コールバック関数は、ページにこのデータを入力し、ページネーション リンクが正しく機能するように更新する必要があります。

これは、毎回フォーム全体を吹き飛ばすよりもエレガントなソリューションかもしれませんが、より多くの作業が必要です。それが顕著な違いになることはまずありません。

于 2009-06-05T18:19:02.120 に答える
0

個人的には、実際に 5 ページを超えることはないことがわかっていれば、Ajax のことを完全に忘れるでしょう...嫌いというわけではありません...これには必要ないと思います場合。

<?php
// Example Database result (say, 2 "pages" worth)...
// We'll pretend the cells in your database match the textarea names...
$results = array(
    [0] => array(
        'textbox1'=>'abc',
        'textbox2'=>'def',
        'textbox3'=>'ghi',
        'textbox4'=>'jkl',
        'textbox5'=>'mno',
        'textbox6'=>'pqr'
        'textbox6'=>'stu'
        'textbox6'=>'vwx'
    ),
    [1] => array(
        'textbox1'=>'cba',
        'textbox2'=>'fed',
        'textbox3'=>'ihg',
        'textbox4'=>'lkj',
        'textbox5'=>'onm',
        'textbox6'=>'rqp'
        'textbox6'=>'uts'
        'textbox6'=>'xwv'
    )
)
$json_results = json_encode($results);
?>

<!-- Generate some jQuery and HTML -->
<script language="javascript">
    var pages = eval('<?=$json_results;?>');
    $(function() {
        $('.page_num').live('click',function() {
            var page = $(this).attr('rel');
            if(pages[page] && pages[page].length > 0) {
                $.each(pages[page],function(key,value) {
                    // assuming your key names are the same as the
                    // names of your textareas
                    $('textarea[name="'+key+'"]').value(value);
                });
            } else {
                alert("Oops, that page doesn't exist for some reason...");
            }
        });
    });
</script>

<?php foreach($results[0] as $key=>$value): ?>
<textarea name="<?=$key?>"><?=$value;?></textarea>
<?php endforeach; ?>

<div id="page_nums">
<?php for($i=1;$i<=sizeof($results)-1;$i++): ?>
<a class="page_num" href="#" rel="<?=$i;?>"><?=$i;?></a>
<?php endfor; ?>
于 2009-06-05T18:55:43.970 に答える