修复分页错误

时间:2013-06-17 14:58:18

标签: php html pagination

我在标签中出现分页问题。在第二个选项卡(候选)中,当我按分页2导航到候选表的第二页时,我将返回到联系表的第一页。如果我之后转到候选标签,我就在右页。我哪里出错了?                  

    <script  src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">              </script>
    <script  src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
    <link rel="stylesheet"  href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/start/jquery-ui.css"/>



     <link type ="text/css" rel ="stylesheet" href = "testData.cs"/>
     <script>
     $(function(){
     $('#tabs1,#tabs2').tabs();
      });
     </script>




     <head>

    <title>Candidate DB</title>

    </head>

     <body>




    <div  id ="tabs1" class ="contactForm">



<ul>     

     <li><a href="#tab1">List of Contacts</a></li>
     <li><a href="#tab2">List of Candidates</a></li>
     <li><a href="#tab3">Advanced Search</a></li>

          </ul>
      <div id ="tab1" class="contact" >
          <table border="1" id="contact_info">


           <tr>
           <th>Contact Name</th>
            <th>County</th>
           </tr>



           <?php

          $DB_NAME = "Candidate";
          $DB_USER ="root";
          $DB_PASSWORD ="";
          $DB_HOST ="localhost";

          $con=mysql_connect("$DB_HOST", "$DB_USER", "$DB_PASSWORD") or die("Could not connect to MySQL");
         mysql_select_db("$DB_NAME") or die ("No Database");

         echo "Connected to Candidate Database </br></hr>" ;
         $per_page=5;

              $pages_query= mysql_query("SELECT COUNT(contact_id) FROM contact");

              $pages = ceil(mysql_result($pages_query,0)/$per_page);

              $page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1;

               $start=($page-1) * $per_page;



                         $sql=mysql_query("SELECT first_name, last_name, county from contact ORDER BY last_name ASC LIMIT $start, $per_page" );




                         $Fname  =      'first_name';
                         $Lname  =      'last_name';
                         $county =      'county';



                while ( $row = mysql_fetch_object($sql)) {
                  echo "<tr>";
                     echo "<td>" . $row ->first_name . " " . $row->last_name. "</td>";
                       echo "<td>" . $row->county . "</td>";
                            echo "</tr>";
                   }

             // close the loop

               if ($pages>=1 && $page<= $pages ) {

                 for ($x=1; $x<=$pages; $x++)
                {
                 echo ($x ==$page)? '<strong><a style="color:green" href="?                    page='.$x.'">'.$x. '</a></strong>_':'<a href="?page='.$x.'">'.$x. '</a>_';
                  }
                  }


                     ?>


        </table>
           </div>


             <div id ="tab2" class="candidate" >
           <table border="1" id="candidate_info">


                              <tr>
                  <th>Candidate Name</th>
                  <th>County</th>
                   </tr>





                       <?php


                   $per_pageR=5;

                    $pages_queryR= mysql_query("SELECT COUNT(candidate_id) FROM p_candidate");

                    $pagesR = ceil(mysql_result($pages_queryR,0)/$per_pageR);

                    $pageR=(isset($_GET['pageR'])) ? (int)$_GET['pageR'] : 1;

                    $startR=($pageR-1) * $per_pageR;



                    $sql2=mysql_query("SELECT R_first_name, R_last_name, R_county from p_candidate ORDER BY R_last_name ASC LIMIT $startR, $per_pageR" );




                     $R_name   =        'R_first_name';
                     $R_name   =        'R_last_name';
                     $R_county =        'R_county';



                     while ( $rowR = mysql_fetch_object($sql2)) {
                      echo "<tr>";
                        echo "<td>" . $rowR ->R_first_name . " " . $rowR->R_last_name.  "</td>";
                    echo "<td>" . $rowR->R_county . "</td>";
                    echo "</tr>";
                       }

               // close the loop

                   if ($pagesR>=1 && $pageR<= $pagesR ) {

                   for ($y=1; $y<=$pagesR; $y++)
                      {
                     echo ($y ==$pageR)? '<strong><a style="color:green" href="?  pageR='.$y.'">'.$y. '</a></strong>_':'<a href="?pageR='.$y.'">'.$y. '</a>_';
                  }
                   }


                      ?>

                     </table>
                     </div> 

                     </div>

                     </body>

1 个答案:

答案 0 :(得分:0)

如果我理解正确,请尝试使用active选项 - http://api.jqueryui.com/tabs/#option-active - 执行.tabs()时将候选标签设为活动标签。

<script>
 $(function(){
 $('#tabs1,#tabs2').tabs(<?php if(isset($_GET['pageR'])) echo "{ active: 1 }"; ?>);
 });
</script>

<script>
 $(function(){
 $('#tabs1,#tabs2').tabs(<?php if(isset($_GET['pageR'])) echo '"option", "active", -1'; ?>);
 });
</script>

修改
您可以先绑定.tabs(),然后设置active选项。这应该有望解决您的格式问题。

<script>
 $(function(){
 $('#tabs1,#tabs2').tabs();
 <?php if(isset($_GET['pageR'])) { ?>
 $('#tabs1').tabs("option", "active", -1)
 <?php } ?>
 });
</script>