ajax
  • jquery
  • partial-page-refresh
  • 2012-01-12 3 views 0 likes 
    0

    나는 내 페이지의 일부 요소를 자주 새로 고치려고합니다. 나는 그것에 대해 여기에 만 주제 프로그래머 알고 나는 내 작업을 얻기 위해 노력했지만, 여기에 내가 새로 고쳐야 할 것입니다 ..PHP로 AJAX Div 새로 고침

    이 생성됩니다 코드입니다 페이지가로드 될 때 :

    <div id="galleria"> 
    
        <?php 
        $a = array(); 
        $dir = '../public/wp-content/uploads/2012/01'; 
        if ($handle = opendir($dir)) { 
         while (false !== ($file = readdir($handle))) { 
         if (preg_match("/\.png$/", $file)) $a[] = $file; 
         elseif (preg_match("/\.jpg$/", $file)) $a[] = $file; 
         elseif (preg_match("/\.jpeg$/", $file)) $a[] = $file; 
         } 
         closedir($handle); 
        } 
    
        $totalImgs = count($a); 
        $imgUsed = array(); 
        for ($j = 0; $j < 100; $j++) 
        { 
         do 
         { 
          $randIndex = mt_rand(0, $totalImgs); 
         } 
         while ($imgUsed[$randIndex] === TRUE); 
         $imgUsed[$randIndex] = TRUE; 
         echo "<img src='" . $dir . '/' . $a[$randIndex] . "' />"; 
        } 
    
        ?> 
    
    </div> 
    

    10 초마다 자동으로 새로 고침하고 싶지만 페이지를 다시로드하지 않으려합니다. 나는 아약스에 대해 읽었고 이것이 가능한 것 같지만 작동시키지 못합니다.

    이 모든 것은 galleria div를 표시하고 div 안에 100 개의 이미지를로드하는 것입니다. 그런 다음 갤러리아 스크립트가 인계되어 멋지게 표시됩니다. AJAX가 더 잘 작동할까요, JQuery일까요?

    도움 주셔서 감사합니다.

    답변

    0

    ajax 호출과 함께 setInterval 기능을 사용하십시오.

    http://jquery-howto.blogspot.com/2009/04/ajax-update-content-every-x-seconds.html

    +1

    완벽! 고맙습니다! –

    +1

    외부 리소스에 대한 링크가 더 나은 답변으로 간주됩니다. 그 이유는 그가 물질로 무엇인가를 쓴 이후로 1 분도 안 걸릴 수 있기 때문입니다. 응답은 자체 포함될 것으로 예상됩니다. 그리고 upvote조차도? 때로는 스택 오버플로를 포기하고 싶습니다. :-디 –

    4

    "AJAX는 더 나은 또는 jQuery를 사용할 수 있습니까?" - AJAX는 기술이며, jQuery는 라이브러리입니다. 결국, jQuery는 AJAX를위한 훌륭한 API를 제공합니다.

    이 "galleria.php"비트를 호출 해 봅시다. 원본 페이지를로드 할 때 좋은 '<?php include('galleria.php')?>을 사용하여 상위 PHP 페이지에 삽입됩니다. 이제 최종 사용자가 전체 초기화 된 페이지를보고 있습니다. 를 업데이트하려면

    , 당신은 AJAX 옵션의 번호를 사용할 수있다, 그러나 가장 쉬운 페이지에 jQuery를 포함하는 다음 스크립트에서 .load()를 사용할 수 있습니다

    var updateGallery = setInterval(function() { 
        $('#someDiv').load('galleria.php'); 
    }, 10000); 
    

    조정의 여지있다 .. 어쩌면 galleria.php은 페이지에 설정된 <div id="galleria">을 포함하지 않습니다. 이 경우 #someDiv 대신 #galleria에 바로로드하고 불필요한 컨테이너는 저장하지 않아도됩니다. 어쩌면 $('#someDiv') 개체를 다른 범위에서 선언하여 캐시하여 재사용 할 수 있습니다. 그러나 이것은 일반적인 요지입니다.

    0

    here을 작성하면서 jQuery ajax 호출로 div를 채울 수 있습니다.

    <html> 
        <head> 
        <script type="text/javascript"> 
         function refresh_gallery(){ 
          $.ajax({ 
           type: "POST", 
            url: "generate_gallery.php", // your PHP generating ONLY the inner DIV code 
            data: "showimages=100", 
            success: function(html){ 
             $("#output").html(html); 
            } 
         }); 
        } 
    
        $(function() { 
        refresh_gallery(); //first initialize 
    
        setTimeout(refresh_gallery(),10000); // refresh every 10 secs 
    
         }); 
    
        </script> 
    </head> 
    <body> 
        <div id="output"></div> 
    </body> 
    </html> 
    

     관련 문제

    • 관련 문제 없음^_^