Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

使用PHP和AJAX实现的动态在线投票系统

作者:徒醉了清风   发布日期:2023-10-16   浏览:1079

下面是一个使用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; ?>

请注意,上述代码中的数据库连接信息需要根据您自己的数据库配置进行修改。此外,为了简化示例,没有进行输入验证和安全性措施,请在实际使用中进行适当的安全性处理。

上一篇:PHP表单过滤:HTML标签与特殊字符过滤

下一篇:如何处理PHP文件编码格式错误并生成相应的报错信息

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站