0

別のdivに他のphpページを含むphpメインページがあります。1 つの div にページネーションを適用し、ページが選択されたときにその div のみを読み込みます。問題は、出力がデータベースになく、コンソール アプリケーションの出力を使用していることです。つまり、コンソール アプリケーションの実行後にすべてのデータが得られます。実行に 10 秒以上かかるため、ページが変更されるたびにコンソール アプリを呼び出すことはできません。これにはajaxを使用する必要があると思いますが、どこで使用すればよいかわかりません。メイン ページでは ajax を使用して、出力が表示される div とページネーションが実行される場所を表示します。明確にするためにコードを投稿しています。

メインページ:

<html>
    <head>

         <script type="text/javascript">

                    function myfunction()
                    {
                      $("#display").html('');
                            $("#retrieveimageform").ajaxForm(
                    {
                    target: '#display'
                    }).submit();

                    };

        </script>
        <title></title>
    </head>
    <body>
        <div id="maindiv">

        <div id="right">
        <div id="grpbox">
                 <form action="retrieveimage1.php" method="post"
                       id="retrieveimageform">
                 <div id='type'>  
                        <fieldset id="typefield" name="typebox">
                        <legend>
                          <label>
                            Type
                          </label>
                        </legend>
                        <p><input type="radio" id="shoes" name="cat" value="shoes"><label for="shoes">Shoes: </label></input><br/>
                        <input type="radio" id="dress" name="cat" value="dress"><label for="dress">Dress: </label></input><br/>
                        <input type="radio" id="handbag" name="cat" value="handbag"><label for="handbag">Handbag: </label></input></p>
                      </fieldset>   
                 </div>
                </div>  
                     <div id="button">
                     <input type="submit" id="btnSearch" value="Search" class="button" onclick="myfunction()">
                     </div>

                </form>
        </div>

              <div id="display"></div>
            </div>
    </div>.....

出力が表示され、上記の表示 div に表示される retrieveimageform1.php.ページ全体をロードせずに、この div でページネーションを実行したい。以下のコードは、ページの読み込みを伴うページングを示していますが、私の場合には適していないため、ページの読み込みなしでページングを行うにはどうすればよいでしょうか。

<?php

                        $data=array();
                          session_start();
                        $start_time=  microtime(true);
                if (isset($_SESSION['img']))
                {   
                        $image=$_SESSION['img'];


                            if (isset($_POST['cat']))
                            {
                               if($_POST['cat']=='handbag')
                                {

                                    $addr="/home/fashion/fashion_proj/handbagsfinal $image $cwt $fwt $swt $twt";
                                     exec($addr,$data);
                                       echo "<div id='tags'>";
                    echo ...................
                                      }
                                      echo "</div>";
                    echo "<fieldset id='outputfield' name='output' class='field_set'><legend><label>Similar items</label></legend>";

                    // find out how many rows are in the table 

                    $numrows = 50;

                    // number of rows to show per page
                    $rowsperpage = 10;
                    // find out total pages
                    $totalpages = ceil($numrows / $rowsperpage);

                    // get the current page or set a default
                    if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
                       // cast var as int
                       $currentpage = (int) $_GET['currentpage'];
                    } else {
                       // default page num
                       $currentpage = 1;
                    } // end if

                    // if current page is greater than total pages...
                    if ($currentpage > $totalpages) {
                       // set current page to last page
                       $currentpage = $totalpages;
                    } // end if
                    // if current page is less than first page...
                    if ($currentpage < 1) {
                       // set current page to first page
                       $currentpage = 1;
                    } // end if

                    // the offset of the list, based on current page 
                    $c=12*$currentpage; datas start from in first page 12

                    echo "<div id='imgdisplay'>";
                                        ....... echo datas to be dispalyed

                    /******  build the pagination links ******/
                    // range of num links to show
                    $range = 3;

                    // if not on page 1, don't show back links
                    if ($currentpage > 1) {
                       // show << link to go back to page 1
                       echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";
                       // get previous page num
                       $prevpage = $currentpage - 1;
                       // show < link to go back to 1 page
                       echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
                    } // end if 

                    // loop to show links to range of pages around current page
                    for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
                       // if it's a valid page number...
                       if (($x > 0) && ($x <= $totalpages)) {
                          // if we're on current page...
                          if ($x == $currentpage) {
                         // 'highlight' it but don't make a link
                         echo " [<b>$x</b>] ";
                          // if not current page...
                          } else {
                         // make it a link
                         echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
                          } // end else
                       } // end if 
                    } // end for

                    // if not on last page, show forward and last page links        
                    if ($currentpage != $totalpages) {
                       // get next page
                       $nextpage = $currentpage + 1;
                        // echo forward link for next page 
                       echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";
                       // echo forward link for lastpage
                       echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";
                    } // end if
                    /****** end build pagination links ******/


                    echo "</fieldset>";

..........

メインページまたは検索ページのどこに ajax を適用する必要がありますか?

4

0 に答える 0