javascript - 每次调用 AJAX 时如何修改 PHP 变量

标签 javascript php jquery ajax

我正在使用 AJAX 从图片库加载更多数据。

我通过 PHP 变量来设置 $ 页码和其他数据。每次我从 AJAX 加载更多数据时,我希望 $page 增加 1,这样下次它就会获取列表中的下一个数据。这是我的 JS

$(window).bind('scroll', function() {
if($(window).scrollTop() >= $('#postswrapper').offset().top + $('#postswrapper').outerHeight() - window.innerHeight) {


    $('div#loadmoreajaxloader').show();
    $.ajax
    ({
        url: "loadmore.php",
        method: "get",
        data: { page: "<?=$page?>", perpage: "<?=$perpage?>"},
        success: function(html)
                {
                    if(html)
                    {
                        $("#postswrapper").append(html);
                        $('div#loadmoreajaxloader').hide();

                        // ###### THIS IS NOT WORKING 
                        <? $page++; ?>

                    }
                    else
                    {
                        $('div#loadmoreajaxloader').html('<center>No more posts to show.</center>');
                    }

                }

    }); // close AJAX

}  // close if()
}); // close $(window)

我尝试合并 <? $page++; ?>在成功功能中,但它不起作用。

我使用 $page我的 SQL 查询中的变量

这是我的 loadmore.php 代码

if (isset($_GET['page'])) 
{
   $page = $_GET['page'];  
   $perpage = $_GET['perpage']; 
   $start = ($page -1) * $perpage ;

   $sql = mysql_query("select * from ..... limit ".$start.", ".$perpage." ");

   $html = '';

    while($blog2 = mysql_fetch_array($sql))
{  
    $html .='HTML GOES HERE';
 }  

echo $html;
exit;
} 

我想要实现的是每次加载更多数据时从下一页开始加载 SQL 查询...关于我应该如何进行的任何建议?

最佳答案

首先,请记住清理 PHP 文件中的所有用户输入以防止 sql 注入(inject):

$page = $_GET['page'];
$perpage = $_GET['perpage'];

// escape the values, or make sure they are numbers, e.g.:
if(!is_numeric($page))
  $page = 0;
if(!is_numeric($perpage))
  $perpage = 10; // or whatever default value

并将您的 PHP 值写入 Javascript 变量并在您的 js 代码中使用它们:

var pageNumber = <?= $page ?>;
var perPage = <?= $perpage ?>;

$(window).bind('scroll', function() {
  if($(window).scrollTop() >= $('#postswrapper').offset().top + $('#postswrapper').outerHeight() - window.innerHeight) {


    $('div#loadmoreajaxloader').show();
    $.ajax
    ({
        url: "loadmore.php",
        method: "get",
        data: { page: pageNumber, perpage: perPage},
        success: function(html)
                {
                    if(html)
                    {
                        $("#postswrapper").append(html);
                        $('div#loadmoreajaxloader').hide();

                        // use the js variable
                        pageNumber++;

                    }
                    else
                    {
                        $('div#loadmoreajaxloader').html('<center>No more posts to show.</center>');
                    }

                }

    }); // close AJAX

}  // close if()
}); // close $(window)

关于javascript - 每次调用 AJAX 时如何修改 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34186150/

相关文章:

jquery - 将多个复选框值保存到 sql 数据库

javascript - 设置间隔替代方案

php - Laravel 将不相关的数据传递给注册 View

java - 如何在 Java 程序中包含 JavaScript 文件

javascript - ChosenJs 动态更改默认选项

php - 拉维尔 5 : Class 'HTML' not found

javascript - 在 Javascript 中测试正则表达式 OnBlur?

php - TinyMCE 从我的 HTML 代码中删除 CSS

javascript - $broadcast 在 ng Repeat 上被多次调用,即使从 Controller 调用一次

javascript - 用 Sinon 模拟 Redis 构造函数