如何从URL查询字符串

时间:2015-08-06 08:16:29

标签: php ajax

美好的一天先生/女士我是新手程序员,他们的方式是页码不会在网址中看到?或者他们是否知道某个关于这个问题的链接?

我想要的是页面号码在这个url pagination2.php?page = 6中看不到 他们是一种使用POST而非GET获取页码的方法吗? 使用xmlhttp的帖子分页(ajax-php)? 我非常抱歉,如果我的英语不好。请不要否定我的问题。我是新手。 :d

先谢谢。

3 个答案:

答案 0 :(得分:1)

这是你如何使用ajax而不在url中显示你的页码:

<强> HTML:

<div>
<div class="page" data-page='1'>1</div>
<div class="page" data-page='2'>2</div>
<div class="page" data-page='3'>3</div>
<div class="page" data-page='4'>4</div>

</div>

<强>脚本:

$(document).ready(function(){ 

    $('.page').click(function(e){

    var page=$(this).attr('data-page');

    var data={pageNum:page};

        $.ajax({
            url:'target.php',
            type:'POST',
            data:data,
            success:function(datar){
             alert(datar);
            }

        })

        e.preventDefault();

    });
}); 

这会将页码发送到php文件并接收数据。

答案 1 :(得分:0)

您可以使用:

  • 漂亮的网址(只有当困扰你的是丑陋的查询字符串时),如果你使用Apache,那么你需要mod-rewrite。
  • 传递请求正文中的数据(是的,即使您使用GET请求,也可以在请求正文中传递数据)。

我不建议使用POST方法来检索数据,因为POST是一种“不安全的方法”(因为POST旨在修改资源,而不是检索它,因此尊重HTTP动词语义是一种很好的做法)

修改 使用GET而不是POST的第一个原因是GET请求通常是缓存的,所以如果你想要食物性能,这是个好主意。

另一个很好的理由是代码可读性。如果保留HTTP动词语义,则更容易理解请求的目的。

与很多人说的相反,当你使用GET动词而不是POST动词时,可以在请求体中发送数据。

使用javascript代码很容易实现,您可以使用GET方法创建AJAX代码,并将数据添加到requerst主体,因为它通常使用POST方法完成。例如,jQuery允许它:https://api.jquery.com/jQuery.get/

答案 2 :(得分:-1)

虽然有几种可能的解决方案(Cookie,自定义标头,POST请求),但也有很强的理由说明为什么从网址中省略页码是一个非常糟糕的主意。

  • 网络上的状态最好用网址表示 - 我们可以将它们传递给朋友。
  • 在网址中将页码作为参数可以帮助搜索引擎为您的内容编制索引。

实际上,在进行分页或翻转滑块时不更新URL真的很烦人,因为如果你不小心碰到后面的栏,你必须再次点击分页并尝试找回原来的路。

Copyright xkcd.com

还有一些非常强大的论据,即分页属于查询字符串news/world?page=2,而不属于网址news/world/page/2。其中之一就是分页通常是一种表现形式。如果您的设计师决定每页应该有500个条目,那么news/world/page/2不应该突然中断。