下面是一个使用PHP和AJAX实现的简单动态在线投票系统的示例代码:
index.html:
<!DOCTYPE html>
<html>
<head>
<title>动态在线投票系统</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
// 投票按钮点击事件
$('.vote-btn').click(function() {
var optionId = $(this).data('option-id');
var pollId = $(this).data('poll-id');
// 发送AJAX请求
$.ajax({
url: 'vote.php',
type: 'POST',
data: {
optionId: optionId,
pollId: pollId
},
success: function(response) {
// 更新投票结果
$('.result').html(response);
}
});
});
});
</script>
</head>
<body>
<h1>动态在线投票系统</h1>
<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 查询投票列表
$pollsQuery = $conn->query("SELECT * FROM polls");
while ($poll = $pollsQuery->fetch_assoc()):
$pollId = $poll['id'];
$optionsQuery = $conn->query("SELECT * FROM options WHERE poll_id = $pollId");
?>
<h2><?php echo $poll['question']; ?></h2>
<ul>
<?php while ($option = $optionsQuery->fetch_assoc()): ?>
<li>
<?php echo $option['name']; ?>
<button class="vote-btn" data-option-id="<?php echo $option['id']; ?>" data-poll-id="<?php echo $pollId; ?>">投票</button>
</li>
<?php endwhile; ?>
</ul>
<div class="result">
<?php
// 查询投票结果
$resultsQuery = $conn->query("SELECT * FROM results WHERE poll_id = $pollId");
while ($result = $resultsQuery->fetch_assoc()):
$optionQuery = $conn->query("SELECT * FROM options WHERE id = " . $result['option_id']);
$option = $optionQuery->fetch_assoc();
?>
<p><?php echo $option['name']; ?>: <?php echo $result['votes']; ?> 票</p>
<?php endwhile; ?>
</div>
<?php endwhile; ?>
</body>
</html>
vote.php:
<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 获取投票选项和投票ID
$optionId = $_POST['optionId'];
$pollId = $_POST['pollId'];
// 更新投票结果
$conn->query("UPDATE results SET votes = votes + 1 WHERE poll_id = $pollId AND option_id = $optionId");
// 查询投票结果
$resultsQuery = $conn->query("SELECT * FROM results WHERE poll_id = $pollId");
while ($result = $resultsQuery->fetch_assoc()):
$optionQuery = $conn->query("SELECT * FROM options WHERE id = " . $result['option_id']);
$option = $optionQuery->fetch_assoc();
?>
<p><?php echo $option['name']; ?>: <?php echo $result['votes']; ?> 票</p>
<?php endwhile; ?>
请注意,上述代码中的数据库连接信息需要根据您自己的数据库配置进行修改。此外,为了简化示例,没有进行输入验证和安全性措施,请在实际使用中进行适当的安全性处理。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站