2016-07-08 71 views
-1

我正在創建一個動態表,我希望爲每頁記錄具有自定義選擇選項。我看一個網站,但它不具備選擇選項中的每頁分頁記錄

頁面選擇選項

我的想法是這樣的:

我想改變$per_page一個PHP標籤,但它給了我,如果我用一個錯誤$_GET$_POST ..感謝您的幫助

<form method="GET"> 
<select id="records" name="records"> 
      <option value="10">10</option> 
       <option value="20">20</option> 
      <option value="30">30</option> 
      <option value="40">Mostra tutti</option> 
      </select><li> 
      <li><input type = "submit" class = button2 name = "btnsubmit"></li> 
      </form> 
</ul></nav> 

<?php 
$page_name="admin_list.php"; 
$per_page = 10 ; 

     if ($result = $con->query("SELECT * FROM clienti WHERE utenza =1 OR utenza =0 ORDER BY es_insegna_esercizio")) 
     { 

     if ($result->num_rows != 0) 
     { 
     $total_results = $result->num_rows; 
     // ceil() returns the next highest integer value by rounding up value if necessary 

     $total_pages = ceil($total_results/$per_page); 

     // check if the 'page' variable is set in the URL (ex: view-paginated.php?page=1) 
     if (isset($_GET['page']) && is_numeric($_GET['page'])) 
     { 
     $show_page = $_GET['page']; 

     // make sure the $show_page value is valid 
     if ($show_page > 0 && $show_page <= $total_pages) 
     { 
     $start = ($show_page -1) * $per_page; 
     $end = $start + $per_page; 
     } 
     else 
     { 
     // error - show first set of results 
     $start = 0; 
     $end = $per_page; 
     } 
     } 
     else 
     { 
     // if page isn't set, show first set of results 
     $start = 0; 
     $end = $per_page; 
     } 

     echo "<table id='my_table' class='tables' name ='tablename'>"; 

      echo " 

      <thead><tr> 
        <th></th> 
        <th> 
       <input type = checkbox > 
        </th> 
        <th>Azienda</th> 
        <th>Utente</th> 
        <th>Cognome</th> 

      </tr></thead> 
       " ; 

      // loop through results of database query, displaying them in the table 
      for ($i = $start; $i < $end; $i++){ 
      // make sure that PHP doesn't try to show results that don't exist 
      if ($i == $total_results) { break; } 
      // find specific row 
      $result->data_seek($i); 
      $row = $result->fetch_row(); 
      // echo out the contents of each row into a table 
      echo "<tr>"; 

       echo '<td><img src ="images/edit_icon.png"class = "autoResizeImage" onclick="JavaScript:newPopup(\'admin_edit.php?id='.$row['0'].'\')" /></td>'; 
       echo '<td><input type=checkbox name=chk[] class= chk-box value='.$row[0].'/></td>'; 
       echo '<td>' . $row[14] . '</td>'; 
       echo '<td>' . $row[2]. '</td>'; 
       echo '<td>' . $row[3] . '</td>'; 
       echo '<td>' . $row[4] . '</td>'; 

       echo "</tr>"; 
      } 
      // close table> 
      echo "</table></form>"; 
     } 
     else{ 
     echo "No results to display!"; 
     } 
     } 
     // error with the query 
     else{ 
     echo "Error: " . $con->error; 
     } 
    echo "<p> 
<b>View Page: </b>"; 
    for ($i = 1; $i <= $total_pages; $i++){ 
    if (isset($_GET['page']) && $_GET['page'] == $i){ 
    echo $i; 
    } 
    else{ 
    echo "<a href='admin_list.php?page=$i'>$i</a> "; 
    } 
    } 

    echo "</p>"; 
    // close database connection 
     $con->close(); 

?> 
</form> 

</div> 

回答

0

你需要在表單和PHP代碼,會得到提交的值。試試這個代碼在元出來

<form method="GET"> 
     <select name="records"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3" selected>3</option> 
      <option value="4">4</option> 
     </select> 
     <input type="submit" name="submit" value="Submit"> 
</form> 
<?php 
     $per_page = 30 ; 

     if(isset($_GET['submit']) && !empty($_GET['records']) && preg_match("/^[0-9]+$/", $_GET['records'])) { 
     /* Is the form submitted + is the records set + is the records an integer*/ 
      $per_page = $_GET['records']; 
     } 

     if($result = $con->query("SELECT * FROM clienti WHERE utenza = 1 OR utenza = 0 ORDER BY es_insegna_esercizio")) { 
      if($result->num_rows != 0) { 
        $total_results = $result->num_rows; // How many records do we have? 
        $total_pages = ceil($total_results/$per_page); // How many pages do we have? 

        if(!empty($_GET['page']) && preg_match("/^[0-9]+$/", $_GET['page']) && $_GET['page'] <= $total_pages) { 
        /* is the page set + is it an integer + is it <= of total pages*/ 
         $show_page = $_GET['page']; 
         $start = ($show_page -1) * $per_page; 
         $end = $start + $per_page; 
        } else { 
         $start = 0; 
         $end = $per_page; 
        } 
      } 
     } 
+0

該選項正在工作,但如果我點擊頁碼,結果回到每行30謝謝 – rcpd

+0

我不太明白你在說什麼。你能解釋一下你的問題好一點嗎? – b0ne

+0

該選項的作品和不行,現在的行改變,但當我點擊下一頁例如1 [2] 3 4 5.行數返回到30每頁deafult而不是選定的值。謝謝 – rcpd

0
<select id="records" name="records"> 
     <option value="10">10</option> 
     <option value="20">20</option> 
     <option selected value="30">30</option> 
     <option value="40">40</option> 
     </select> 
     <input type = "submit" name = "record"> 

$per_page = 30 ; 

if(isset($_GET["records"]) && $_GET["records"] > 0) 
{ 
    $per_page = $_GET["records"] ;  
} 


    if ($result = $con->query("SELECT * FROM clienti WHERE utenza =1 OR utenza =0 ORDER BY es_insegna_esercizio")) 
    { 

    if ($result->num_rows != 0) 
    { 
    $total_results = $result->num_rows; 
    // ceil() returns the next highest integer value by rounding up value if necessary 

    $total_pages = ceil($total_results/$per_page); 

    // check if the 'page' variable is set in the URL (ex: view-paginated.php?page=1) 
    if (isset($_GET['page']) && is_numeric($_GET['page'])) 
    { 
    $show_page = $_GET['page']; 

    // make sure the $show_page value is valid 
    if ($show_page > 0 && $show_page <= $total_pages) 
    { 
    $start = ($show_page -1) * $per_page; 
    $end = $start + $per_page; 
    } 
    else 
    { 
    // error - show first set of results 
    $start = 0; 
    $end = $per_page; 
    } 
    } 
    else 
    { 
    // if page isn't set, show first set of results 
    $start = 0; 
    $end = $per_page; 

你只需要添加「name」屬性。併爲「記錄」添加條件。請使用這個。你的問題將被解決。另外,如果使用'POST'方法,則在條件中使用$ _POST方法。

+0

謝謝但它不工作:( – rcpd

+0

你得到哪個錯誤? – Hardik

+0

頁數不變 – rcpd