简体   繁体   中英

Display inside tag correctly - Jquery

When I click the pagination links all work correctly, but the only problem is that inside the div id="ajaxList" displays again all the content of the page

Form And table list

All page content displayed within the id="ajaxList" after clicking the pagination link

Jquery

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

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

   $( "body #ajaxList" ).load( url + "#ajaxList" );

})

Console alert:

[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/ .

I tried in several ways to inform the parents sequence but it does not work, it only works if it displays directly in the 'body' without specifying some id or class

$( "#ajaxList" )

$( "body #ajaxList" )

$( "body .col #ajaxList" )

$( "html body .col #ajaxList" )

I am using jquery-3.2.1

class.crud.php

public function paging($query,$records_per_page)
    {
        $starting_position=0;
        if(isset($_GET["page_no"]))
        {
            $starting_position=($_GET["page_no"]-1)*$records_per_page;
        }
        $query2=$query." limit $starting_position,$records_per_page";
        return $query2;
    }

    public function paginglink($query,$records_per_page)
    {
        $self = $_SERVER['PHP_SELF'];

        $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["page_no"]))
            {
                $current_page=$_GET["page_no"];
            }
            if($current_page!=1)
            {
                $previous =$current_page-1;
                echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=1'>First</a></li>";
                echo "<li class='page-item'><a  href='#' class='page-link' data-href='".$self."?page_no=".$previous."'>Previous</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='".$self."?page_no=".$i."' style='color:red;'>".$i."</a></li>";
                }
                else
                {
                    echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=".$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='".$self."?page_no=".$next."'>Next</a></li>";
                echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=".$total_no_of_pages."'>Last</a></li>";
            }
            ?></ul><?php
        }
    }

index.php

<table class="table table-hover" id="ajaxList">
              <thead>
                <tr>
                  <th >#</th>
                  <th style="display:none">id</th>
                  <th>Name</th>
                  <th>Email</th>
                  <th>Tel</th>
                  <th>City</th>
                  <th>Contry</th>

                </tr>
              </thead>
              <tbody >

                 <?php
                    $query = "SELECT * FROM crud ORDER BY id DESC";       
                    $records_per_page=7;
                    $newquery = $crud->paging($query,$records_per_page);
                    $crud->dataview($newquery);
                 ?>
                <tr>
                    <td colspan="7" align="center">
                        <nav aria-label="Page navigation example">
                        <?php $crud->paginglink($query,$records_per_page); ?>
                        </nav>
                    </td>
                </tr>
              </tbody>  
        </table>

There must be a space after the target page URI, so instead of:

url + "#ajaxList"

use this:

url + " #ajaxList"

If one or more space characters are included in the string, the portion of the string following the first space is assumed to be a jQuery selector that determines the content to be loaded.

As found in docs .

Also, once you remove the .page_link anchor, than you would have to bind click event once again. To avoid that, simply bind to body this way:

$("body").on("click", ".page-link", function() { ... });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM