PHP按照使用$\u GET从url检索的顺序加载更多结果
我正在尝试根据之前提交的过滤器设置对所有加载的项目(单击“加载更多”后)进行排序。 在使用GET提交表单时,我在url上显示了所有设置 由于某些原因,在提交表单并单击“加载更多”后,我无法使用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_
<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 BYdate
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>