0

1 つのディレクトリに 100 以上の画像があり、次の php コードを使用して、最新の画像を一番上に表示するページを生成します。

<?php
function mtimecmp($a, $b) {
    $mt_a = filemtime($a);
    $mt_b = filemtime($b);

    if ($mt_a == $mt_b)
        return 0;
    else if ($mt_a < $mt_b)
        return -1;
    else
        return 1;
}

$images = glob($dirname."*.jpg");
usort($images, "mtimecmp");

for ($i = count($images) - 1; $i >= 0; $i--) {
    $image = $images[$i];
    echo '<img src="'.$image.'" height ="400"/><br />';
}

?>

私がやりたいことは、最後の 20 ページを表示する新しいページ (html または php のいずれか) を生成し、ユーザーにさらに画像をロードするオプションを提供することです。このようにして、ユーザーがページにアクセスしたときに、100 以上の写真すべてを読み込む必要はなく、20 枚だけを読み込む必要があります。

ご協力ありがとうございました。

4

2 に答える 2

1

一般的に言えば、ロード後にページを変更することを含むものはすべて、php 以外で行われます。私は JavaScript を使用しています。あなたがやろうとしていることには、JQuery を使用します。JQuery を使用すると、次のようになります。

<a id='load_twenty_button'>Load 20 more!</a>
<div id='where_to_put_the_images'></div>

<script>
   var img_start = 20;

   //when link is clicked, do the function
   $('#load_twenty_button').click( function() {
       var link = 'my_site/form_actions/getImages.php'
       $.post(link
        , {   start: img_start
            , end: img_start +20
          }
        , function (result) 
          { 
              //set the html of the div element to the html your php link return
              $('#where_to_put_the_images').html(result);  
              img_start += 20;
          }   
        );
    });
</script>

次に、getIMages.php に対して、$_POST['start'] と $_POST['end'] を使用して、どの画像を html に表示するかを決定します。エコーされたものはすべて、div 要素「where_to_put_images」に投稿されます。その後さらに 20 を追加する場合は、少し作業する必要がありますが、これで十分です。

また、必ず JQuery をリンクしてください。基本的な JQuery の例を調べてください。上部にリンクされています。

于 2013-07-06T19:37:36.047 に答える