Ajax数据和$ _GET

时间:2017-09-11 18:24:02

标签: javascript php jquery ajax pagination

我一直在研究jquery文档和关于ajax,我试图了解ajax和php请求是如何工作的。

我试图将正常的分页转换为ajax分页。

如何使用ajax currentPage=3&currentPage=1 并在服务器上使用它?

我尝试在控制台中返回的方式如下:

如果我点击数字3,例如

currentPage=8&currentPage=1

如果我点击数字8

$('.page-link').click(function (e) {
   e.preventDefault();

   var url = $(this).data('href');

   $.ajax({
         type:"get",
         url: url,
         data: {
            currentPage: 1
         },  
         success: function (response) {

           var html = $('<h1/>', {html : response}).find('#paginacao-ajax');
           $('#paginacao-ajax').html( html )    


         }
   });
})

并且屏幕不会更改它保留在相同的内容

AJAX

public function paginglink($query,$records_per_page)
        {

            $stmt = $this->db->prepare($query);
            $stmt->execute();

            $total_no_of_records = $stmt->rowCount();

            if($total_no_of_records > 0)
            {
                ?><ul class="pagination"><?php
                $total_no_of_pages=ceil($total_no_of_records/$records_per_page);

                $current_page=1;

                if(isset($_GET["currentPage"]))
                {
                    $current_page=$_GET["currentPage"];



                }
                if($current_page!=1)
                {
                    $previous =$current_page-1;
                    echo "<li class='page-item'><a href='#' class='page-link' data-href='currentPage=1'>First</a></li>";
                    echo "<li class='page-item'><a href='#' class='page-link' data-href='currentPage=".$previous."'>Back</a></li>";

                }
                for($i=1;$i<=$total_no_of_pages;$i++)
                {
                    if($i==$current_page)
                    {
                        echo "<li class='page-item'><a href='#' class='page-link' data-href='currentPage=".$i."' style='color:red;'>".$i."</a></li>";
                    }
                    else
                    {
                        echo "<li class='page-item'><ahref='#' class='page-link' data-href='currentPage=".$i."'>".$i."</a></li>";
                    }
                }
                if($current_page!=$total_no_of_pages)
                {
                    $next=$current_page+1;
                    echo "<li class='page-item'><a href='#' class='page-link' data-href='currentPage=".$next."'>Next</a></li>";
                    echo "<li class='page-item'><a href='#' class='page-link' data-href='currentPage=".$total_no_of_pages."'>Last</a></li>";
                }
                ?></ul><?php
            }
        }

class.crud.php

%i[ ... ]

2 个答案:

答案 0 :(得分:0)

$ _ GET变量只会为您提供被调用url上显示的内容 喜欢: - http://yourdomain.com?someParameter=SomeValue&anotherParameter=AnotherValue

将是:

Array(
   someParameter => SomeValue
   anotherParameter => AnotherValue
}

基本上你的错误是在你的网址和你的数据属性上声明currentPage。没有规则禁止在url上使用相同的参数两次,实际上这在某些框架中很常见。因为接缝不是你的意图所以你应该在ajax调用中从你的数据属性中删除currentPage:1。

但是对于这些知识,ajax与普通表单提交没有什么不同,除了它不需要页面重新加载这样做的事实。因此,您可以遵循常见形式(发布或获取)的正常行为以及如何获取有关PHP代码的信息。

您可以像这样制作ajax请求:

$('.page-link').click(function (e) {
   e.preventDefault();

   var url = $(this).data('href');

   $.ajax({
         method:"GET",
         url: url,
         success: function (response) {

           var html = $('<h1/>', {html : response}).find('#paginacao-ajax');
           $('#paginacao-ajax').html( html )    


         }
   });
})

PHP,默认情况下使用 $ _ GET $ _ POST 变量时,只会为您提供使用相同名称定义的最后一个参数的值。

因此,如果您定义树时间,参数A例如(A = 1&amp; A = 2&amp; A = 3),使用$ _GET [&#39; A&#39;] 访问它给你结果3.

如果您希望获得有关参数A的所有值,则必须解析自己的网址。

使用 $ _ SERVER [&#39; REQUEST_URI&#39;] ,您可以访问网址字符串,并且很容易被&#34;&amp;&#34;,而不是每个字符串爆炸一个人再次爆炸&#34; =&#34; ,而不是使用具有相同名称的参数的值创建一个数组。或任何其他解决方案,如求和,或任何更适合你的解决方案。

答案 1 :(得分:0)

在您的js代码中,将currentPage=1替换为currentPage=$(this).attr('data-href')

请参阅此示例:

&#13;
&#13;
$('.page-link').click(function (e) {
   e.preventDefault();

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

   $.ajax({
         type:"get",
         url: url,
         data: {
            currentPage: page
         },  
         success: function (response) {

           var html = $('<h1/>', {html : response}).find('#paginacao-ajax');
           $('#paginacao-ajax').html( html )    


         }
   });
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class='page-item'><a href='#' class='page-link' data-href='1'>Pag 1</a></li>
<li class='page-item'><a href='#' class='page-link' data-href='2'>Pag 2</a></li>
<li class='page-item'><a href='#' class='page-link' data-href='3'>Pag 3</a></li>
<ul>
&#13;
&#13;
&#13;