【问题标题】:Trying to get sql query to be dynamic with jquery尝试使用 jquery 使 sql 查询动态化
【发布时间】:2011-01-31 08:50:01
【问题描述】:

我正在尝试创建一个动态 sql 查询,其中用户单击一个按钮(链接)并将该链接的 id 发送到 sql 查询。我想用jquery来完成这个。但是,作为 jquery 和 PHP 的新手,我发现很难让它正常工作。

首先,我应该提到我正在使用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>

【问题讨论】:

  • php 代码似乎不相关。 pagination3.php的代码是什么,浏览时会发生什么?它是否显示正确的html?此外,“不起作用”对您的问题的描述很糟糕......
  • pagination3.php 是如上所示的主页。就它不起作用而言,我的意思是,当用户单击链接时,我无法弄清楚如何将 a.category id 发送到 sql 查询以更改类别。

标签: php jquery class pagination


【解决方案1】:

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

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

get:

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

(这里需要注意的是,两个调用不一定是错误的——它们可能都有效。另外,请注意 SQL 注入——你非常接近..)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多