使用jQuery、PHP和MySQL对Wordpress$wpdb->;进行Ajax分页;得到结果
我已经为我的测验创建了一个排行榜,并且有一个自定义的Wordpress表格,在那里我使用$wpdb->get_results。 在排行榜中,我想显示“分数”、“奖牌”和“显示姓名”。 我正在尝试使用AJAX循环遍历数组,并将其显示在排行榜上,就像分页一样,以显示用户的结果(分数)。 以下是我到目前为止的情况 排行榜(带脚本:) 测验中的所有问题都在同一页上,结果页最后显示用户的所有分数。 我就是不能让它工作。使用jQuery、PHP和MySQL对Wordpress$wpdb->;进行Ajax分页;得到结果,php,jquery,mysql,ajax,wordpress,Php,Jquery,Mysql,Ajax,Wordpress,我已经为我的测验创建了一个排行榜,并且有一个自定义的Wordpress表格,在那里我使用$wpdb->get_results。 在排行榜中,我想显示“分数”、“奖牌”和“显示姓名”。 我正在尝试使用AJAX循环遍历数组,并将其显示在排行榜上,就像分页一样,以显示用户的结果(分数)。 以下是我到目前为止的情况 排行榜(带脚本:) 测验中的所有问题都在同一页上,结果页最后显示用户的所有分数。 我就是不能让它工作。 任何帮助都将不胜感激。如果您需要更多信息,请告诉我。首先,您应该了解如何正确使用wor
任何帮助都将不胜感激。如果您需要更多信息,请告诉我。首先,您应该了解如何正确使用wordpress中的ajax。也许从这里开始,或者谢谢你。我现在正在调查。那么,我该如何对数据库中的所有数组进行分页呢?您想对帖子进行分页,或者更像是一个无限卷轴?基本上,我需要显示数据库中的数组列表,其中包含每个用户的分数、奖牌和显示名称。就像排行榜我的建议是。。。重新开始。。。更新您的ajax函数以实际工作并返回一些内容。。。通过使用wordpress方式的ajax实现这一点,然后显示更新的php函数和jquery(ajax)。现在,您的php不会返回或回显任何内容。
<div id="result" class='row col-12' style='padding-top: 90px; '>
<div class='card-group'>
<div class='card'>
<div class='card-body'>
<h5 class='card-title bg-info text-white'>Weekly Leaderboard</h5>
<div id="leader_board">
<?php for ($i = 0; $i <= count($display_result); $i++) { ?>
<div class="card-text-page" id="card-text-page1">
<div class='card-text border'>
<div class='leader-detail'>
<div class='leader-username'>
<?= $display_result[$i]['display_name']; ?>
</div>
<div class='leader-score'>
<p><?= $display_result[$i]['score'] ?>%</p>
</div>
</div>
<div class='leader-medal'>
<?= $display_result[$i]['medal'] ?>
</div>
</div>
</div>
<?php } ?>
<div id="tota_page_div">
<?php
for ($i = 1; $i <= $currentPage; $i++) {
echo "<input type='button' value='" . $i . "' onclick='get_data(" . $i . ")'>";
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
function get_data(no) {
$.ajax({
type: 'post',
url: '/quiz.php',
data: {
row_no: no
},
success: function(response) {
document.getElementById("card-text-page1").innerHTML = response;
}
});
}
});
</script>
<?php endif; ?>
//Insert into database
global $wpdb, $current_user;
wp_get_current_user();
if (isset($_POST['submit'])) {
$data_total = array(
'score' => $_POST['totalscore'],
'finish_time' => $_POST['countdown'],
'medal' => $_POST['medal'],
'insert_date' => date('Y-m-d'),
'display_name' => $current_user->display_name
);
$table_name = 'wp_quiz';
$wpdb->insert($table_name, $data_total, $format = NULL);
}
//set pages for pagination
if (isset($_GET["page"])) {
$page = $_GET["page"];
} else {
$page = 1;
};
$limit = 4;
$start = ($page - 1) * $limit;
//Request from database
$get_result = $wpdb->get_results(
"select *
from
wp_quiz
order by
score desc
limit $start, $limit
"
);
$get_result1 = $wpdb->get_results(
"select
count(id)
as
id
from
wp_quiz
"
);
//change object into array
$display_result = json_decode(json_encode($get_result), true);
$display_result1 = json_decode(json_encode($get_result1), true);
$total_result = $display_result1[0]['id'];
$currentPage = ceil($total_result / $limit);