Dedecms首页文章列表无刷新顶、踩实现方法
1. 前端实现
1.1 HTML结构
确保你的文章列表HTML中包含顶、踩按钮,并且为它们绑定事件处理函数。
<div class="articleitem"> <h3 class="articletitle">文章标题</h3> <div class="articleinfo"> <!其他信息 > </div> <div class="articlevote"> <button class="voteup" dataid="123">顶</button> <button class="votedown" dataid="123">踩</button> <span class="votecount">0</span> </div> </div>
1.2 CSS样式
为顶、踩按钮添加样式。
.voteup, .votedown { padding: 5px 10px; border: 1px solid #ddd; cursor: pointer; } .voteup { backgroundcolor: #f0f0f0; } .votedown { backgroundcolor: #f8f8f8; color: red; }
1.3 JavaScript实现
使用JavaScript来处理点击事件,并通过AJAX发送请求到服务器。
document.addEventListener('DOMContentLoaded', function() { var voteButtons = document.querySelectorAll('.voteup, .votedown'); voteButtons.forEach(function(button) { button.addEventListener('click', function() { var voteType = this.classList.contains('voteup') ? 'up' : 'down'; var articleId = this.getAttribute('dataid'); var url = '/vote.php'; // 服务器处理投票的URL var data = { type: voteType, id: articleId }; fetch(url, { method: 'POST', headers: { 'ContentType': 'application/json' }, body: JSON.stringify(data) }) .then(response => response.json()) .then(data => { if (data.success) { // 更新投票数 var voteCountSpan = this.parentElement.querySelector('.votecount'); voteCountSpan.textContent = parseInt(voteCountSpan.textContent) + (voteType === 'up' ? 1 : 1); } else { alert(data.message); } }) .catch(error => console.error('Error:', error)); }); }); });
2. 后端实现
2.1 PHP处理投票
创建一个PHP脚本处理投票请求。
<?php // vote.php header('ContentType: application/json'); // 数据库连接和查询省略... $id = $_POST['id']; $type = $_POST['type']; $userId = $_SESSION['user_id']; // 用户ID // 查询数据库,更新投票数 // ... if ($updateSuccess) { echo json_encode(['success' => true]); } else { echo json_encode(['success' => false, 'message' => '投票失败']); } ?>
2.2 数据库操作
确保你的数据库中有相应的表来存储投票信息。
CREATE TABLE votes ( id INT AUTO_INCREMENT PRIMARY KEY, article_id INT, user_id INT, type ENUM('up', 'down'), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
3. 总结
是实现Dedecms首页文章列表无刷新顶、踩功能的基本步骤,前端通过JavaScript和AJAX与后端PHP脚本交互,后端处理投票逻辑并更新数据库,这样用户就可以在不刷新页面的情况下进行投票操作。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。