制作下一个按钮以获取更多数据?

时间:2012-10-17 14:07:43

标签: php mysql ajax

亲爱的朋友们,             我希望你们都没事 我想制作一个下一个按钮,以便从mysql数据库中获取更多数据 例如:

$sql = mysql_query("SELECT * FROM table LIMIT 0,7");  

它有7行。对于下一个数据代码是  $sql = mysql_query("SELECT * FROM table LIMIT 7,7");

我可以使用ajax来做到这一点。 正如你在许多网站上看到的那样,当你点击评论时,它给出一个限制 评论,当你点击更多评论时,它会提供更多等等。在这个过程中你可以看到 页面的其他内容没有改变。这意味着它可以使用ajax,我怎么能在ajax中做到这一点。 请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:0)

你的ajax会是这样的

var numberOfdata = 0;

$('#button').click(function () {
    $.ajax({
        url: 'load.php',
        data: {
            'limit' : numberOfdata,
            // other data ...
        },
        type : 'post',
        // other parameters...
    }).success(function (data) {
        // adding data to your website
        numberOfdata += 7;
    });    
});

在你的服务器端,你可以做这样的事情

... other operations
mysql_query("SELECT * FROM table LIMIT " . $_POST['limit'] . ",7"); 
... continuting the work

注意:您应该能够自己处理SQL注入。

编辑:请注意,不建议使用mysql_query。

答案 1 :(得分:0)

您必须通过Ajax发送当前的注释计数,从响应中获取新的注释并显示它们。

Javascript:

$(document).ready(function() {
    $('a.pagination-more').click(function() {
        var current_comments_count = $(this).data("current_comments_count");

        $.ajax({ 
            type: "POST",
            url: "pagination/pagination_ajax_more.php",
            data: { "limit_start":current_comments_count },
            beforeSend:  function() {
                $('a.pagination-more').html('<img class="loading-gif" src="pagination/loading.gif" />'); 
            },
            success: function(html){ 
                $("#more").remove(); // This is the "More" button. It is appended to the end again in the 'html' variable
                $("ul#updates").append(html);
                if($("a#end")[0]) {
                    $("div#more").remove();
                }
            }
        }); 

        return false;
    });
});

在PHP方面,你只需获得$ limit_start,从数据库中获取结果并回显html,如:

$limit_start = $_POST['limit_start'];

$query = mysql_query("SELECT COUNT(*) FROM `table` LIMIT 0, $limit_start");
$current_comments_count = mysql_num_rows($query);

$query = mysql_query("SELECT * FROM `table` LIMIT $limit_start, 7");

while($row = mysql_fetch_assoc($query)) { 
    echo '<li>
            blah blah...
          </li>';
}

if(mysql_num_rows($query) == 7)  
    echo '<div id="more"><a data-current_comments_count="$current_comments_count" class="button pagination-more" href="#">More</a></div>';
else
    echo '<div id="more"><a id="end" class="button pagination-more" href="#">The button will be removed from jQuery...</a></div>';

当然强烈建议您保护自己的应用程序,而不是仅使用mysql_query()。这段代码正在运行,但我删除了一些其他的东西,现在没有测试它。因此,可能会出现一些错误。