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 jqxDocking windowsMode属性

    当您提出的问题与之前回答的问题重复时,我会提醒您并提供正确的回答。以下是关于“jQWidgets jqxDocking windowsMode属性”的完整攻略,包含两个示例说明: 属性简介 jqxDocking 控件的 windowsMode 属性用于设置控件的窗口模式。该属性的语法如下: $("#jqxDocking").jqxDock…

    jquery 2023年5月10日
    00
  • jquery组件使用中遇到的问题整理及解决

    JQuery组件使用中遇到的问题整理及解决 JQuery是一个被广泛使用的JavaScript库,它可以用来简化网页操作及增加互动效果。JQuery提供了众多方便易用的组件,然而在使用过程中也存在一些常见的问题,本文将针对部分常见问题进行分析与解决。 问题1: JQuery组件在IE浏览器中无法正常运行 有时候,我们在Chrome、Firefox等现代浏览器…

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

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

    jquery 2023年5月10日
    00
  • jQWidgets jqxValidator规则属性

    下面是对于“jQWidgets jqxValidator规则属性”的详细讲解和示例说明。 标题 一、什么是jqxValidator规则属性 jqxValidator规则属性是jQWidgets中的一个验证组件,可以验证文本输入框中的输入内容是否符合要求。通过设置规则属性,可以限制输入字符数、验证邮箱、网址、数字等内容。 二、jqxValidator规则属性的…

    jquery 2023年5月12日
    00
  • jQuery callbacks.lock()方法

    当我回答上一个问题时,我犯了一个错误,我混淆了callbacks.lock()和callbacks.locked()方法。callbacks.lock()方法是用于锁定回调函数列表,防止新的回调函数被添加到列表中。以下是关于callbacks.lock()方法的详细攻略,含两个示例,演示如何使用callbacks.lock()方法: 语法 callbacks…

    jquery 2023年5月9日
    00
  • jQuery学习笔记之jQuery原型属性和方法

    jQuery学习笔记之jQuery原型属性和方法 1. jQuery原型属性 在jQuery中,原型属性(Prototype Properties)指的是指针指向的对象的属性。 1.1 常见的原型属性 jquery: jQuery的版本号。 length: 选中元素集合的长度。 selector: 选中元素的选择器或者过滤方式。 1.2 示例 console…

    jquery 2023年5月28日
    00
  • jQuery获取内容和属性

    jQuery获取内容和属性 jQuery是一种快速简洁的JavaScript库,其通过选择DOM元素来操作HTML和CSS。在jQuery中,获取元素内容和属性是必不可少的技能。 获取元素内容 获取元素内容的方法有很多,例如.text(),.html()和.val()等方法。 .text() .text()方法用于获取或设置选定元素的文本内容,该方法仅返回所…

    jquery 2023年5月12日
    00
  • jQWidgets jqxRangeSelector moveOnClick属性

    以下是关于 jQWidgets jqxRangeSelector 组件中 moveOnClick 属性的详细攻略。 jQWidgets jqxRangeSelector moveOnClick 属性 jQWidgets jqRangeSelector 组件的 moveOnClick用于设置是否在单击选择器轨道时移动选择器。 语法 // 设置是否在单击选择器轨…

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