2010-03-24 114 views
0

我想创建一个动态的sql查询,其中用户单击一个按钮(链接),并将该链接的ID发送到SQL查询。我想用jQuery来完成这个任务。但是,对于jquery和PHP都很新,我发现很难让它正常工作。试图让sql查询与jQuery动态

首先,我应该提到我正在使用this php pagination class。我在主页上有三个链接,其中包含用户可以用来过滤内容的类别的ID。

如果有人能帮我解决这个问题,那会很棒。谢谢。

这是我开始jQuery的,但就像我说的,它不能正常工作:

$(document).ready(function(){ 

    //Display Loading Image 
    function Display_Load() 
    { 
     $("#loading").fadeIn(900,0); 
     $("#loading").html("<img src='bigLoader.gif' />"); 
    } 
    //Hide Loading Image 
    function Hide_Load() 
    { 
     $("#loading").fadeOut('slow'); 
    }; 

// Sort Content Marketing  
$("a.category").click(function() { 
    this_id = $(this).attr("id"); 
    $.get("pagination3.php", { category: this_id }, 
    function(data){ 
     //Load your results into the page 
     $("#content").load('pagination3.php?&category='+ this_id); 
    }); 
}); 



}); 

这里是主要页面的样子:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> 
<script type="text/javascript" src="jquery_page.js"></script> 

<?php 
    //Include the PS_Pagination class 
    include('ps_pagination.php'); 
    //Connect to mysql db 
    $conn = mysql_connect('localhost', 'root', 'root'); 
    mysql_select_db('ajax_demo',$conn); 
    $sql = "select * from explore where category='marketing'"; 
    //Create a PS_Pagination object 
    $pager = new PS_Pagination($conn, $sql, 3, 11, 'param1=value1&param2=value2'); 
    //The paginate() function returns a mysql 
    //result set for the current page 
    $rs = $pager->paginate(); 
    //Loop through the result set 
    while($row = mysql_fetch_assoc($rs)) { 
      echo "<div id='loading'></div>"; 
      echo "<div id='content'>"; 

      echo "<table width='800px'>"; 

       echo "<tr>"; 
        echo"<td>"; 
        echo $row['id']; 
        echo"</td>"; 

        echo"<td>"; 
        echo $row['site_description']; 
        echo"</td>"; 

        echo"<td>"; 
        echo $row['site_price']; 
        echo"</td>"; 
       echo "</tr>"; 

      echo "</table>"; 
      echo "</div>"; 
    } 

     echo "<ul id='pagination'>"; 

      echo "<li>"; 
      //Display the navigation 
      echo $pager->renderFullNav(); 
      echo "</li>"; 

?> 

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

<a href="#" class="category" id="automotive">Automotive</a> 

<a href="#" class="category" id="sports">Sports</a> 
+0

php代码似乎不相关。 pagination3.php的代码是什么,当你浏览它时会发生什么?它显示正确的HTML?此外,“不起作用”是一个很糟糕的描述你的问题... – Kobi 2010-03-24 18:30:55

+0

pagination3.php是上面看到的主页。关于它不工作,我的意思是,我无法弄清楚如何发送a.category id到sql查询来改变用户点击链接时的类别。 – ClarkSKent 2010-03-24 21:56:09

回答

0

一个问题是:您有两个AJAX呼叫 - getload。你不需要两个。
要么使用load

$("#content").load('pagination3.php?&category='+ this_id); 

get

$.get("pagination3.php", { category: this_id }, 
    function(data){ 
    $("#content").html(data); 
    }, "html" 
); 

(这里的一个侧面说明的是,两个呼叫不一定是错的 - 他们可能都工作还,注意SQL注入。 - 你非常接近..)