jQuery+PHP+Mysql实现抽奖程序

为了实现“jQuery+PHP+Mysql实现抽奖程序”,需要完成以下步骤:

1.创建抽奖数据库表

这里我们需要创建一张名为“lottery”的表,表结构如下:

CREATE TABLE `lottery` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL COMMENT '姓名',
  `mobile` varchar(11) NOT NULL COMMENT '手机号',
  `location` varchar(50) NOT NULL COMMENT '位置',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2.编写前端抽奖页面

我们可以使用jQuery编写前端页面,并调用PHP接口实现数据的读写操作。一个简单的HTML页面代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>抽奖</title>
    <script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            $("#lottery-btn").click(function() {
                $.ajax({
                    url: "lottery.php",
                    type: "POST",
                    data: {},
                    dataType: "json",
                    success: function(resp) {
                        alert(resp.msg);
                        if(resp.code == 0) {
                            $("#lottery-result").text(resp.data.name + " " + resp.data.mobile + " " + resp.data.location);
                        } else {
                            $("#lottery-result").text("抽奖失败");
                        }
                    }
                });
            });
        });
    </script>
</head>
<body>
    <button id="lottery-btn">开始抽奖</button>
    <p>中奖结果:<span id="lottery-result"></span></p>
</body>
</html>

3.编写后端接口

我们需要编写一个遵循RESTful规范的PHP接口,用于接收前端发送的请求,并处理数据的读写操作。一个简单的PHP接口代码如下:

<?php
header("Content-Type: application/json;charset=utf-8");

// 连接数据库并获取PDO对象
$dbhost = "localhost";
$dbname = "test";
$dbuser = "root";
$dbpass = "";
$conn = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 处理请求
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    try {
        // 判断是否中奖
        $rand = rand(1, 100);
        if($rand > 10) {
            $prize = false;
            $msg = "很遗憾,没有中奖";
        } else {
            $prize = true;
            $msg = "恭喜你,中奖了!";
            // 模拟中奖数据
            $data = array(
                'name' => '张三',
                'mobile' => '13800138000',
                'location' => '北京市朝阳区'
            );
            // 存储中奖数据
            $stmt = $conn->prepare("INSERT INTO `lottery` (`name`, `mobile`, `location`, `create_time`) VALUES (:name, :mobile, :location, NOW())");
            $stmt->bindParam(':name', $data['name']);
            $stmt->bindParam(':mobile', $data['mobile']);
            $stmt->bindParam(':location', $data['location']);
            $stmt->execute();
        }
        $result = array(
            'code' => 0,
            'msg' => $msg,
            'data' => $prize ? $data : null
        );
    } catch (PDOException $e) {
        $result = array(
            'code' => $e->getCode(),
            'msg' => $e->getMessage(),
            'data' => null
        );
    } catch (Exception $e) {
        $result = array(
            'code' => $e->getCode(),
            'msg' => $e->getMessage(),
            'data' => null
        );
    }
} else {
    $result = array(
        'code' => 405,
        'msg' => "Method Not Allowed",
        'data' => null
    );
}

echo json_encode($result);
?>

4.示例说明

示例一

用户点击“开始抽奖”按钮,触发前端页面的AJAX请求。PHP接口处理请求,随机生成中奖结果,如果中奖则存储中奖信息并返回给前端,否则返回抽奖失败信息。前端页面接收到响应后,根据状态码和消息内容更新页面中的文本信息,显示中奖结果或者抽奖失败信息。

示例二

假设我们需要新增一个管理页面,用于查询已中奖的用户信息。我们可以使用PHP编写后端接口,调用MySQL的SELECT语句查询数据库表中的中奖记录,并以JSON格式返回给前端页面。前端页面再使用jQuery完成数据的渲染和呈现。具体的PHP代码和前端HTML代码可以参考以下示例:

// PHP代码

<?php
header("Content-Type: application/json;charset=utf-8");

// 连接数据库并获取PDO对象
$dbhost = "localhost";
$dbname = "test";
$dbuser = "root";
$dbpass = "";
$conn = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 处理请求
if($_SERVER['REQUEST_METHOD'] == 'GET') {
    try {
        // 查询中奖记录
        $stmt = $conn->query("SELECT * FROM `lottery`");
        $data = array();
        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $data[] = $row;
        }
        $result = array(
            'code' => 0,
            'msg' => "查询成功",
            'data' => $data
        );
    } catch (PDOException $e) {
        $result = array(
            'code' => $e->getCode(),
            'msg' => $e->getMessage(),
            'data' => null
        );
    } catch (Exception $e) {
        $result = array(
            'code' => $e->getCode(),
            'msg' => $e->getMessage(),
            'data' => null
        );
    }
} else {
    $result = array(
        'code' => 405,
        'msg' => "Method Not Allowed",
        'data' => null
    );
}

echo json_encode($result);
?>

// 前端HTML代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>中奖记录查询</title>
    <script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            $.ajax({
                url: "query.php",
                type: "GET",
                dataType: "json",
                success: function(resp) {
                    if(resp.code == 0) {
                        var html = "";
                        for(var i = 0; i < resp.data.length; i++) {
                            html += "<tr>";
                            html += "<td>" + resp.data[i].name + "</td>";
                            html += "<td>" + resp.data[i].mobile + "</td>";
                            html += "<td>" + resp.data[i].location + "</td>";
                            html += "<td>" + resp.data[i].create_time + "</td>";
                            html += "</tr>";
                        }
                        $("#query-result").html(html);
                    } else {
                        $("#query-result").html("查询失败");
                    }
                }
            });
        });
    </script>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>姓名</th>
                <th>手机号</th>
                <th>地址</th>
                <th>中奖时间</th>
            </tr>
        </thead>
        <tbody id="query-result"></tbody>
    </table>
</body>
</html>

以上就是"jQuery+PHP+Mysql实现抽奖程序"的完整攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery+PHP+Mysql实现抽奖程序 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQWidgets jqxButton imgSrc属性

    jQWidgets jqxButton imgSrc属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxButton是其中之一。本文将详细介绍jqxButton的imgSrc属性,包括定义、语法和示例。 imgSrc属性的定义 jqxButton的imgSrc属性用于设置按钮图像的URL。 imgSrc属性的语法 …

    jquery 2023年5月10日
    00
  • jQuery简单实现日历的方法

    下面是一份“jQuery简单实现日历的方法”的完整攻略。 1. HTML布局 首先,我们需要在HTML页面中创建一个包含日历的容器。一般来说,我们可以使用一个table元素来生成日历。我们的示例代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8&…

    jquery 2023年5月28日
    00
  • jQWidgets jqxTreeGrid columnReordered事件

    以下是关于 jQWidgets jqxTreeGrid 的 columnReordered 事件的完整攻略: jQWidgets jqxTreeGrid columnReordered 事件 columnReordered 事件在 jqxTreeGrid 组件中,当用户重新排序列时触发。该事件提供了新的列顺序和旧的列顺序。 语法 jqxTreeGrid’).…

    jquery 2023年5月11日
    00
  • 浅析return false的正确使用

    首先我们先来探讨一下“return false”的作用。 在JavaScript中,“return false”语句主要有以下两种作用: 阻止表单提交和超链接跳转等默认行为 停止事件的传播和冒泡 因此,我们在使用“return false”时应该考虑清楚它的作用,尤其是在处理事件时。 接下来,我们来分别针对上述两种情况来探讨如何正确使用“return fal…

    jquery 2023年5月27日
    00
  • javascript 动态脚本添加的简单方法

    当网页文档加载的时候,我们可以通过动态添加JavaScript脚本来给网页添加更多的交互性和动态性。下面将介绍JavaScript动态脚本添加的简单方法。 基本用法 动态添加JavaScript脚本的方法非常简单,只需要使用document.createElement方法创建一个script元素,然后设置其src属性即可。 var script = docu…

    jquery 2023年5月27日
    00
  • jQWidgets jqxListMenu enableScrolling属性

    jQWidgets jqxListMenu enableScrolling属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqListMenu是组件之一。本文将详细介绍jqxListMenu的enableScrolling属性,包括用法、语法和示例。 enableScrolling属性的基本语法 enableScro…

    jquery 2023年5月10日
    00
  • jQWidgets jqxTreeGrid autoRowHeight属性

    jQWidgets jqxTreeGrid autoRowHeight 属性 jqxTreeGrid 是 jQWidgets 提供的一个树形表格组件,它可以展示层级结构的数据支持多种交互。jqxTreeGrid 提供了 autoRowHeight,用于自动计算行高度。 autoRowHeight 属性 autoRowHeight 属性用于自动计算行高度。该属…

    jquery 2023年5月11日
    00
  • jQWidgets jqxTreeGrid可编辑属性

    jQWidgets jqxTreeGrid 是一个功能强大的树形表格组件,支持多种交互操作。其中,可编辑属性是 jqxTreeGrid 的一个重要特性,可以让用户在表格中直接编辑数据,提高数据录入效率。本文将详细讲解 jQWidgets jqxTreeGrid 的可编辑属性,包括如何配置和使用。 可编辑属性 jQWidgets jqxTreeGrid 的可编…

    jquery 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部