如何在没有刷新的情况下,在dedecms首页实现文章列表的无刷新顶和踩功能?
- 行业动态
- 2024-10-06
- 3538
Dedecms首页文章列表无刷新顶、踩实现方法
1. 前端实现
1.1 HTML结构
确保你的文章列表HTML中包含顶、踩按钮,并且为它们绑定事件处理函数。
<div > <h3 >文章标题</h3> <div > <!其他信息 > </div> <div > <button dataid="123">顶</button> <button dataid="123">踩</button> <span >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脚本交互,后端处理投票逻辑并更新数据库,这样用户就可以在不刷新页面的情况下进行投票操作。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/150899.html