为了实现“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技术站