Таблица сортировки Ajax php без обновления страницы - PullRequest
0 голосов
/ 27 мая 2018

Когда я нажимаю на ссылку книги, она должна сортировать книги в порядке возрастания, а если я нажимаю снова, она сортирует их в порядке убывания.Почему, когда я нахожусь на первой странице и нажимаю на ссылку с книгами, она сортирует книги, но только если я щелкаю дважды и, например, когда нахожусь на второй странице и нажимаю на ссылку, сортировка выполняется, ноэто возвращает меня к первой странице.Почему?

это как мой ajax-код в index.php

$(document).ready(function() {
  $("#sorter").click(function() {
  // e.preventDefault();
  var order_by_value = $('input[name="order_by"]').val();
  $.ajax({
      type: 'GET',
      url: "" + 'http://test.local/ajax-data.php?action=getBooks',
      data:{
        'order_by_value': order_by_value,
        //button: 'button',
      },
      success: function (res) {
        console.log(res);
        if(order_by_value == "ASC"){
          $('input[name="order_by"]').val("DESC");
        } else {
          $('input[name="order_by"]').val("ASC");
        }
        // $('input[name="current"]').trigger('click');
        // display the result from the server
        $("#myTable").html(res);
      }
   });
  });
});

И это моя функция для получения книг в UUser.php

public function getBooks($start = 0, $limit = 2, $order = "ASC")
{
   $sql_start = $start * $limit;
   $sql_limit = $limit;
   $sql_order_by = $order;

   $query = "SELECT Library.nameOfBook, userBook.book_id, userBook.user_id FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username=:username ORDER BY Library.nameOfBook $sql_order_by LIMIT $sql_start, $sql_limit";
   $statment = $this->db->prepare($query);
   $statment->execute([
       ':username' => $this->username
   ]);

   $result = $statment->fetchAll();

   echo "<table id='myTable' border='1'>
           <tr>
             <th><a id='sorter' href='#'>Books</a></th>
             <th>Action</th>
           </tr>";
   foreach($result as $row){
       echo "<tr>";
       echo "<td>" . $row['nameOfBook'] . "</td>";
       echo "<td>" ."<input type='submit' id='delete".$row['book_id']."-".$row['user_id']."' onclick='deleteBook(this)' name='delete' value='Delete'>" . "</td>";
       echo "</tr>";
   }

   echo "</table>";
   echo "";
   return count($result); 
}

И этофайл, который AJAX назвал его

<?php

include_once('UUser.php');

if(isset($_GET['action']) )
{

  $object = new User();
  switch($_GET['action'])
  {
    case "getBooks":
      $object->setUserName($_SESSION['username']);
      $object->getBooks();
      break;
    default:
      echo('there is no action');
      break;
  }
}
?>
...