单击PHP、JQUERY、MYSQL显示更多来自数据库的信息

单击PHP、JQUERY、MYSQL显示更多来自数据库的信息,php,javascript,jquery,mysql,web,Php,Javascript,Jquery,Mysql,Web,我在一个网站上工作,从db表category_names中提取类别名称。然后,我使用php将它们显示在网站上的html无序列表中。我想限制category_名称的数量,然后使用jqueryor或其他任何东西,但我更喜欢jQuery检索更多category_名称,并添加一个较少的按钮返回 我希望我能让这个问题简单易懂,谢谢你的帮助 使用带有分页的数据网格。我认为这将对您很有效根据您的需要,有许多不同的方法会更好或更差 方法1更简单,效率更低,可扩展性差:执行完整查询,并将所有结果存储在DOM上,使

我在一个网站上工作,从db表category_names中提取类别名称。然后,我使用php将它们显示在网站上的html无序列表中。我想限制category_名称的数量,然后使用jqueryor或其他任何东西,但我更喜欢jQuery检索更多category_名称,并添加一个较少的按钮返回


我希望我能让这个问题简单易懂,谢谢你的帮助

使用带有分页的数据网格。我认为这将对您很有效

根据您的需要,有许多不同的方法会更好或更差

方法1更简单,效率更低,可扩展性差:执行完整查询,并将所有结果存储在DOM上,使用jQuery jQuery expander隐藏它们是一个简单的插件,您可能想尝试一下,尽管我发现它在定制方面有局限性

方法2更复杂,但更高效/可扩展,也更快:使用MySQL limit,您实际上可以在单击时发送第二个MySQL请求,但是,您需要确保这是异步的,以免延迟用户的交互。


这类似于:

基本上使用AJAX来获取更多信息。开始时,使用LIMIT在几分钟内加载

然后使用以下jQuery加载更多内容:

$('#loadmore').click(function() {
    var loaded = $(this).attr('num_loaded');
    $.ajax({
        url:'load_categories.php',
        type:'get',
        data:{'from':loaded,'to':loaded+10},
        success: function (res) {
            var categories = $.parseJSON(res);
            categories.each(function() {
                $('#categories').append('<ul>'+this+'</ul>');
            });
            $('#loadmore').attr('num_loaded',loaded+10);
        }
    });
});
最后,您需要创建AJAX调用的PHP页面-load_categories.PHP


或者你可以做一些简单的事情:
 $get = mysqli_queury ($link, "SELECT * FROM db_name WHERE blank='blank' LIMIT 5"
 if (isset($_POST['button']; {
 $get = mysqli_query ($link, "SELECT * FROM db_name WHERE blank='blank' LIMIT 10"
 }
?>
<form action="showmore.php" method="POSt">
<input type="button" id="button" name="button">
</form>

希望有帮助

这是一个很好的答案谢谢你。。。我想我可以尝试方法2。。。非常感谢!你好看起来是个不错的解决方案,但我有个问题。它会重新加载所有数据还是在前10条记录之后重新加载数据?老兄,我会崇拜你的
<?php

if (!isset($_GET['from'])) exit;
if (!isset($_GET['to'])) exit;

$from = $_GET['from'];
$to = $_GET['to'];
$diff = $from-$to;

// connect / select db
$res = mysql_query('SELECT * FROM `category_names` LIMIT '.$from-1.','.$to.';');
$arr = array();
while ($row = mysql_fetch_array($res)) {
    array_push($arr,$row['name']);
}
echo json_encode($arr);

?>  
 $get = mysqli_queury ($link, "SELECT * FROM db_name WHERE blank='blank' LIMIT 5"
 if (isset($_POST['button']; {
 $get = mysqli_query ($link, "SELECT * FROM db_name WHERE blank='blank' LIMIT 10"
 }
?>
<form action="showmore.php" method="POSt">
<input type="button" id="button" name="button">
</form>