PHP按照使用$\u GET从url检索的顺序加载更多结果

PHP按照使用$\u GET从url检索的顺序加载更多结果,php,Php,我正在尝试根据之前提交的过滤器设置对所有加载的项目(单击“加载更多”后)进行排序。 在使用GET提交表单时,我在url上显示了所有设置 由于某些原因,在提交表单并单击“加载更多”后,我无法使用GET从url检索设置。。知道为什么吗 此查询将整理所有结果: <div class="main_page"> <?php $res = mysql_query("SELECT * FROM posts WHERE ".$search_query." ".$lowest_

我正在尝试根据之前提交的过滤器设置对所有加载的项目(单击“加载更多”后)进行排序。 在使用GET提交表单时,我在url上显示了所有设置

由于某些原因,在提交表单并单击“加载更多”后,我无法使用GET从url检索设置。。知道为什么吗

此查询将整理所有结果:

<div class="main_page">
    <?php

    $res = mysql_query("SELECT * FROM posts WHERE ".$search_query." ".$lowest_price." ".$highest_price." ".$ad_order." ".$limit."");

    if($res && mysql_num_rows($res) > 0){
        while($row = mysql_fetch_assoc($res)){
            $date = $row['date']; 
        }
        echo '<div class="ad_display" id="'.$date.'">blabla</div>';
    }
然后您还需要在
loadmore.php
中包含该代码,并且您需要修改两个脚本,如下所示

// loadmore.php

$ad_order = "The same computation with values from the query string";

$res = mysql_query("SELECT * FROM posts WHERE `date` < '".mysql_real_escape_string($_GET['id'])."' " . $ad_order . " LIMIT 10")
//loadmore.php
$ad_order=“使用查询字符串中的值进行相同的计算”;
$res=mysql\u query(“从'date`<'”的帖子中选择*。mysql\u real\u escape\u字符串($\u GET['id'])。“'””。“$ad\u order.“限制10”)
…还有这个

// Loading function in JavaScript

<script type="text/javascript">
    $(document).ready(function(){
        $(".load_more").click(function (){
            $('.load_more').html('<img src="images/ajax-loader.gif" />');
            $.ajax({
                url: "loadmore.php?order1=<?=$_GET['order1'];?>&order2=<?=$_GET['order2'];?>&id=" + $(".ad_display:last").attr("id"),
            }
        });
    });
});
</script>
//在JavaScript中加载函数
$(文档).ready(函数(){
$(“.load_more”)。单击(函数(){
$('.load_more').html('');
$.ajax({
url:“loadmore.php?order1=&order2=&id=”+$(“.ad_display:last”).attr(“id”),
}
});
});
});
这是一个通用的示例,说明了解决方案应该是什么-您的问题中没有足够的细节,我无法准确回答,因此您需要更改变量名称和
$ad_order
代码,以使其与您的脚本一起工作


此外,正如上面第二个Rikudo所说的,您的代码容易受到SQL注入的攻击。您应该阅读链接到的文章。

哪里定义了
$search\u query
等?什么形式?而在
loadmore.php
中,排序似乎是静态的,那么为什么您希望结果按您在那里指定的
date
以外的任何东西排序呢?使用搜索查询更新了上面的代码。@CBroe是的,我知道,但我只是简单地回显$\u GET['search\u query'],它会告诉我未定义的变量您的代码有SQL注入漏洞。请参阅更新的代码,该代码在表单提交后会进入$res。。抱歉,这里有很多代码,所以很难不遗漏其中的一些部分。当我在这里询问jquery代码时,我尽量不制作一个巨大的代码页,这只有在用户选择过滤器的情况下才有效,如果没有,则index.php之后没有变量传递到$\u GET。我试着按照您之前所说的那样使用$\u GET函数将“使用值进行相同的计算…”传递到loadmore.php页面,但由于某种原因,它不起作用。至于$ad_order是什么,它只是如果(isset($_-GET['ad_-order'])和&$_-GET['ad_-order']==“1”){$ad_-order=“order BY
date
DESC”;…等等,只是显示帖子的不同组合
if(isset($_GET['search'])){
    $searchq = $_GET['search'];
    $searchq = sanitize(preg_replace("#[^0-9a-z]#i","",$searchq));
    $search_query = "AND (title LIKE '%".$searchq."%' OR description LIKE '%".$searchq."%')";
}
$res = mysql_query("SELECT * FROM posts WHERE `date` < '".mysql_real_escape_string($_GET['id'])."' ORDER BY `date` DESC LIMIT 10");
// main-page.php?order1=X&order2=Y

$ad_order = "Some kind of computation with the values from the query string";
// loadmore.php

$ad_order = "The same computation with values from the query string";

$res = mysql_query("SELECT * FROM posts WHERE `date` < '".mysql_real_escape_string($_GET['id'])."' " . $ad_order . " LIMIT 10")
// Loading function in JavaScript

<script type="text/javascript">
    $(document).ready(function(){
        $(".load_more").click(function (){
            $('.load_more').html('<img src="images/ajax-loader.gif" />');
            $.ajax({
                url: "loadmore.php?order1=<?=$_GET['order1'];?>&order2=<?=$_GET['order2'];?>&id=" + $(".ad_display:last").attr("id"),
            }
        });
    });
});
</script>