2010-03-05 77 views
1

我想弄清楚如何动态更新我的sql查询。如何动态更新sql查询 - jquery

在主页上,我有一个分页脚本,计算有多少网页会出现:

<?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'"); ?> 

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

我遇到的问题是使用单行代码。我想使类别动态,所以而不是硬编码到'营销'我想jquery获得一个元素的id并将其放入。

元素将是这个链接,我有同样的页:

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

所以,当用户点击该链接,我试图将使用jQuery查询的类别部分的链接的ID。

我希望这是有道理的,如果有人能帮助我,这将是伟大的。

+0

这是在一个AJAX请求,或正常的页面加载? – 2010-03-05 00:47:55

+0

这是一个Ajax请求。 – SOFuser 2010-03-05 01:00:43

+0

你可以发布你目前的ajax电话吗?更容易直接回答这个问题 – 2010-03-05 01:08:32

回答

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,然后在服务器,抓住它,为了安全性妥善转义它,并使用该查询。以与现在相同的方式加载结果,该部分不会改变。

+0

+1使用'mysql_real_escape_string' – 2010-03-05 01:28:36