如何动态更新sql查询 - jquery

时间:2010-03-05 00:41:25

标签: php jquery mysql

我试图找出如何动态更新我的SQL查询。

在主页面上,我有一个分页脚本,用于计算将有多少页面:

<?php
function generate_pagination($sql) {
  include_once('config.php');
  $per_page = 3;

  //Calculating no of pages
  $result = mysql_query($sql);
  $count = mysql_num_rows($result);
  $pages = ceil($count/$per_page);

  //Pagination Numbers
  for($i=1; $i<=$pages; $i++)
  {
    echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>';
  }
}
?>

然后我在同一页面的正文中有这行代码填充页码:

<?php generate_pagination("SELECT * FROM explore WHERE category='marketing'"); ?>

因此,该行显示了仅为“营销”类别显示的必要数量的页码。

我遇到的问题是使用那一行代码。我想让类别变得动态,所以我不想将它硬编码为'marketing',而是希望jquery获取元素的id并将其放入。

该元素将是我在同一页面上的链接:

<a href="#" class="category" id="marketing">Marketing</a>

因此,当用户点击该链接时,我试图使用jquery将链接的ID放在查询的类别部分中。

我希望这是有道理的,如果有人能帮助我,那就太好了。

1 个答案:

答案 0 :(得分:1)

首先,PHP方面:

<?php
function generate_pagination($sql) {
  include_once('config.php');
  $per_page = 3;

  //Calculating no of pages
  $result = mysql_query($sql);
  $count = mysql_num_rows($result);
  $pages = ceil($count/$per_page);

  //Pagination Numbers
  for($i=1; $i<=$pages; $i++)
  {
    echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>';
  }
}
?>

<?php generate_pagination("SELECT * FROM explore WHERE category='" . mysql_real_escape_string ( $_POST ['category'] ) . "'"); ?>

然后在你的jquery帖子中:

$("a.category").click(function() {
  $.post("test.php", { category: $(this).attr("id") },
    function(data){
      //Load your results into the page
    });
});

点击后,我们获取ID,将其作为帖子变量category传递给服务器,然后在服务器上抓取,正确转义以确保安全,并使用该查询。以与现在相同的方式加载结果,该部分不会改变。