Когда я нажимаю ссылку на книгу, он перезагружает страницу и сортирует столбец. Я хочу остановить перезагрузку с помощью ajax ,,, Как?
это мои функции в этом процессе.
эта функция getBook
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);
}
эта функция jquery
<script>
$(document).ready(function() {
$( "#sorter" ).click(function() {
var order_by_value = $('input[name = "order_by"]').val();
if (order_by_value == "ASC"){
$('input[name = "order_by"]').val("DESC");
}
else {
$('input[name = "order_by"]').val("ASC");
}
$('input[name = "current"]').trigger('click');
});
});
</script>
он все еще обновляет страницу
Поскольку вы нажимаете $('input[name = "current"]'), который тоже является кнопкой отправки, я предполагаю
так как я могу решить эту проблему? @mplungjan
Измените все кнопки на type = "button" и все ajax



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


<script>
$(document).ready(function() {
$( "#sorter" ).click(function() {
var order_by_value = $('input[name = "order_by"]').val();
$.ajax({
type: 'GET',
url: 'the url link ',
data: {
'order_by_value': order_by_value
},
success: function (res) {
if (res == "ASC"){
$('input[name = "order_by"]').val("ASC");
}
else {
$('input[name = "order_by"]').val("DSC");
}
$('input[name = "current"]').trigger('click');
});
}
});
</script>
Нет, я не ... я попросил код ajax для решения этой проблемы, я не говорю, что это код ajax.
ваш код выглядит нормально, не могли бы вы дать нам более подробную информацию? подробности ошибки?
Я хочу, чтобы страница не обновлялась, когда я нажимал на книгу ссылок, чтобы заказать свою книгу
Щелчок вызовет событие, которое, в свою очередь, вероятно, перезагрузит вашу страницу. Как я уже говорил, если вы разместите свой код, нам будет легче вам помочь.
Я пропустил свою функцию, которая находится в таблице, пожалуйста, проверьте код обновления
вы можете войти в "$ (" #sorter ") .click (function () {"? ... если нет, вы можете попробовать это <a href = "#" onclick = "fn()"> нажмите здесь < / а>
мой код работает на 100%, но моя проблема, как я уже сказал, я хочу остановить обновление страницы, когда я нажал на книгу ссылок, поэтому я должен использовать ajax, но в моем случае я не знаю, как я могу его использовать.
Ладно, попробуй вот так ...
какой URL-адрес вставлен в URL-адрес: в моей ситуации?
я поместил URL-адрес, где функция getBook внутри него ... и она не работает ... теперь не выполнялась сортировка: /
URL в вашем случае - это ссылка, по которой вы отправите свои данные
могу я отправить его на UUser.php?
и почему он не поднялся, когда стал спускаться ??
когда я меняю if (res == "ASC") {на if (order_by_value == "ASC") {его работа, но все же обновляю страницу -_-
$("#sorter").click(function(e) { e.preventDefault(); ...да, вы можете отправить его на user.php, изучить синтаксис .... используйте preventDefault, как сказал + mplunghab. В AJAX все, что у вас есть после успеха, находится в параметре res.
Во-первых, никогда не перезагружайте страницу, пока не убедитесь, что ajax завершил свой процесс.
Во-вторых, если вы хотите выполнить сортировку с помощью JS, запустите этот код после завершения отправки формы или данных в вашем случае.
Вот как будет выглядеть ваш код ajax с перезагрузкой страницы при завершении
$.ajax({
type: 'GET',
url: 'your_page_link.php',//this will be url of your backend page
data: {
'name':name
'email':email
},// if you are using form then just use .serialize() to submit the form instead of preparing data like this use $("#form_id").serialize()
success: function (msg) {
resp = msg;
}
}).done(function(){
if (resp == your_expected_response){
window.location.href = "http://stackoverflow.com";
}else{
//your error handler
}
});
Надеюсь, это будет полезно, не стесняйтесь спрашивать, требуются ли какие-либо разъяснения.
Ваше здоровье!!
$("#sorter").click(function(e) { e.preventDefault(); ...