【问题标题】:Paginate query result with AJAX and PHP使用 AJAX 和 PHP 对查询结果进行分页
【发布时间】:2013-12-05 12:36:30
【问题描述】:

我有一个完整的使用 get 方法的分页。我从查询中得到结果,并且当 URL 上的变量分页发生变化时,页面也发生了变化。我最近将网站更改为 ajax,现在我无法从 URL 获取点击的页面值

我有一个表单,其中包含一些用于生成查询的输入和一个连接到 PHP 文件并将结果放在 div 上的 ajax 结构

我的 php 文件:

  //items per page
  $quantidade = 30;
  //actual page
  $pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
  $inicio     = ($quantidade * $pagina) - $quantidade;
  $sql .= " LIMIT " . $inicio . " , " . $quantidade ;

  $qr  = mysql_query($sql) or die(mysql_error());

  echo "<table id='tab_vendas' border='1' width='100%'>";
  echo "<tr><td>Data</td><td>Loja</td><td>Total (AKZ)</td><td>Total (USD)</td><td>Multicaixa</td><td>Saidas</td><td>Visa</td></tr>";

  $num_rows = mysql_num_rows($qr);
  if($num_rows > 0){
    while($ln = mysql_fetch_assoc($qr)){
          echo "<tr><td>" . $ln['data']."</td>"; 
          echo "<td>" . $ln['loja']."</td>"; 
          echo "<td>" . $ln['totalkz']."</td>";
          echo "<td>" . $ln['totaldollar']."</td>";
          echo "<td>" . $ln['multicaixa']."</td>";
          echo "<td>" . $ln['saidas']."</td>";
          echo "<td>" . $ln['visa']."</td></tr>"; 
    }
  }else{
       echo "Não foram encontrados registos";
  }
echo"</table></div>";



  //total
  $sqlTotal   = "SELECT id FROM vendas";
  $qrTotal    = mysql_query($sqlTotal) or die(mysql_error());
  $numTotal   = mysql_num_rows($qrTotal);

  $totalPagina= ceil($numTotal/$quantidade);

   $exibir = 3;
   $anterior  = (($pagina - 1) == 0) ? 1 : $pagina - 1;
   $posterior = (($pagina+1) >= $totalPagina) ? $totalPagina : $pagina+1;

   echo "<div id='paginacao'><a href='?pagina=1'>Primeira</a> | ";
   echo "<a href=\"?pagina=$anterior\"><<</a> | ";       

   for($i = $pagina-$exibir; $i <= $pagina-1; $i++){
            if($i > 0)
             echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
  }

   echo '<a href="?pagina='.$pagina.'"><strong>['.$pagina.']</strong></a>';       

   for($i = $pagina+1; $i < $pagina+$exibir; $i++){
            if($i <= $totalPagina)
            echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
  }

  echo " | <a href=\"?pagina=$posterior\">>></a> | ";
  echo "  <a href=\"?pagina=$totalPagina\">Ultima</a></div>";

我最大的问题是如何获得实际的页面价值以及如何知道用户点击了哪个按钮。

我尝试将链接更改为具有表单属性的提交按钮,该属性再次发送表单并再次运行所有代码,但我不知道如何传递单击的按钮值。

echo " | <input type='submit' form='filtros' name='$posterior' value='>>'>";
echo "  <input type='submit' form='filtros' name='$totalPagina' value='Ultima'></div>";

【问题讨论】:

    标签: php jquery html ajax pagination


    【解决方案1】:

    您可以简单地修改您的代码,使其像链接页面时一样工作。

          <a class="page" href="url.com?parameter=value&parameter2=value2">pageNumber</a>
    

    javascript 代码是:

          $('.a.page').on('click', function() {
              var url = $(this).attr(href);
              $.ajax({
                  type: 'GET',
                  url: url,
                  success: function(response) {
                      $('selector to the container you wish to put the data').html(response.data)
                  }
              });
          })
    

    在你的 php 中你应该回显 json_encode 你的数据

        echo json_encode(array('data' => $data));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-21
      • 2021-12-04
      • 2019-10-25
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      相关资源
      最近更新 更多