登录:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
<style type="text/css">
#login{
width: 320px;
height: 320px;
margin-top: 200px;
margin-left: auto;
margin-right: auto;
}
.error{
color: red;
}
</style>
</head>
<body>
<div id="login" class="form-inline">
<div class="form-group">
<input type="text" id="phone" class="form-control" placeholder="手机号"/> <span class="error"></span>
</div>
<div class="form-group">
<input type="text" id="code" class="form-control" placeholder="验证码">
<input type="button" value="获取验证码" id="getCode" class="btn"> <span class="error"></span>
</div>
<br>
<br>
<button class="login btn btn-info">登录</button>
</div>
</body>
</html>
<!-- <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script> -->
<script src="./js/jQuery-3.5.1.min.js"></script>
<script src="./js/jquery-cookie1.4.1jquery.cookie.min.js"></script>
<script type="text/javascript">
// 获取验证码 先做手机号失焦验证
$('#phone').blur(function(){
var phone = $(this).val();
var preg_phone = /^1[35789]\d{9}$/;
if(phone == ''){
$(this).next().empty();
$(this).next().text('手机号非空');
return false;
}
if(!preg_phone.test(phone)){
$(this).next().empty();
$(this).next().text('手机号格式不正确');
return false;
}
$(this).next().empty();
})
// 获取验证码 验证手机号 并且前端限制60秒内 不能重复点击
$('#getCode').click(function(){
var phone = $('#phone').val();
var preg_phone = /^1[35789]\d{9}$/;
if(phone == ''){
$('#phone').next().empty();
$('#phone').next().text('手机号非空');
return false;
}
if(!preg_phone.test(phone)){
$('#phone').next().empty();
$('#phone').next().text('手机号格式不正确');
return false;
}
$('#phone').next().empty();
// 开始写计时器 前端限制手机号验证码接口调用频次
var _this = this;
var number = 5;
var timer = setInterval(function(){
if(number>1){
number--;
$(_this).val(number+'s后重新获取');
$(_this).attr('disabled',true);
}else{
$(_this).val('重新获取');
$(_this).attr('disabled',false);
clearInterval(timer);
}
},1000)
$.ajax({
url:"http://www.month.com/get_code?phone="+phone,
type:"GET",
dataType:"JSON",
success:function(res){
if(res.code == 200){
$('.error').eq(1).empty();
$('.error').eq(1).text(res.msg);
$('.error').css('color','green');
}
if(res.code == 2001){
$('.error').eq(1).empty();
$('.error').eq(1).text(res.msg);
}
}
})
})
// 登录
$('.login').click(function(){
// 验证手机号是否合法
var phone = $('#phone').val();
var preg_phone = /^1[35789]\d{9}$/;
if(phone == ''){
$('#phone').next().empty();
$('#phone').next().text('手机号非空');
return false;
}
if(!preg_phone.test(phone)){
$('#phone').next().empty();
$('#phone').next().text('手机号格式不正确');
return false;
}
$('#phone').next().empty();
// 验证短信验证码格式是否正确
var code = $('#code').val();
if(code == ''){
$('#code').next().next().empty();
$('#code').next().next().text('短信验证码非空');
return false;
}
var preg_code = /^\d{4}$/;
if(!preg_code.test(code)){
$('#code').next().next().empty();
$('#code').next().next().text('短信验证码格式不正确');
return false;
}
$('#code').next().next().empty();
// 开始发送请求 获取token
$.ajax({
url:"http://www.month.com/login",
type:"POST",
dataType:"JSON",
data:{
phone:phone,
code:code,
},
success:function(res){
console.log(res);
if(res.code == 200){
localStorage.setItem('token',res.data.token);
window.location.href='user_info.html';
}
if(res.code == 2001){
alert(res.msg);
}
}
})
})
</script>
商品列表:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
ul{
width: 1200px;
height: 650px;
margin-top: 80px;
background-color: pink;
border: 5px solid orange;
margin-left: auto;
margin-right: auto;
border-radius: 5px;
}
ul li{
width: 300px;
height: 230px;
margin: 50px;
background-color: yellow;
float: left;
list-style: none;
}
</style>
</head>
<body>
<input type="text" class="page"> <button type="button" class="getPage">输入页码</button>
<ul>
</ul>
</body>
</html>
<script src="js/login.js"></script>
<script src="js/jQuery-3.5.1.min.js"></script>
<script src="js/md5.js"></script>
<script>
// 加载数据
function getGoods(page){
var token = getToken();
localStorage.setItem('page',page);
var params = new Array();
params['page'] = page;
sign = create_sign(params);
params['sign'] = sign;
var url = '';
for(var i in params){
url += i+'='+params[i]+'&';
}
url = url.substr(0,url.length-1);
$.ajax({
url:"http://www.month.com/goods_list?"+url,
type:"GET",
dataType:"JSON",
headers:{
'Authorization':"Bearer"+token
},
success:function(res){
console.log(res);
if(res.code == 200){
var str = '';
var data = res.data.goods;
for(var i in data){
str += '<li>'+"<img class='goodsDetail' ids='"+data[i]['id']+"' src='"+data[i]['goods_avatar']+"'width='80px;'>"+
"<p class='goodsName'>图片:"+data[i]['goods_name']+"</p>"+
"<p class='goodsPrice'>价格:"+data[i]['goods_price']+"</p>"+
"<p class='goodsStore'>库存:"+data[i]['goods_store']+"</p>"+
"<p class='goods_id'>id:"+data[i]['id']+"</p>"+
"</li>";
}
$('ul').append(str);
}
if(res.code == 2001){
alert(res.msg);
}
}
})
}
// 页面加载
$(document).ready(function(){
var page = localStorage.getItem('page');
if(isNaN(page)){
page = 1;
}
$('.page').val(page);
getGoods(page);
})
// 选择页码
$('.getPage').click(function(){
$('ul').empty();
var page = $('.page').val();
if(page == '' || isNaN(page)){
page = 1;
}
getGoods(page);
});
// 点击进入详情
$("body").delegate(".goodsDetail","click",function(){
var id = $(this).attr('ids');
window.localStorage.setItem('goods_id',id);
window.location.href='goods_detail.html';
})
</script>
商品详情:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.content{
width: 500px;
height: 300px;
margin-top: 200px;
margin-left: auto;
margin-right: auto;
border: 10px solid pink;
border-radius: 6px;
}
</style>
</head>
<body>
<div class="content">
</div>
</body>
</html>
<script src="js/login.js"></script>
<script src="js/jQuery-3.5.1.min.js"></script>
<script src="js/md5.js"></script>
<script>
$("body").delegate(".getOrder","click",function(){
var id = $(this).attr('ids');
if(isNaN(id) || id<=0){
alert('商品参数id不合法');
return false;
}
var number = $('.number').val();
if(isNaN(number) || number<=0){
number = 1;
}
var token = localStorage.getItem('token');
if(token == ''){
alert('下单前请先登录');
window.location.href='login.html';
return false;
}
var params = new Array();
params['id'] = id;
params['number'] = number;
var sign = create_sign(params);
params['sign'] = sign;
var url = '';
for(var i in params){
url += i+'='+params[i]+'&';
}
url = url.substr(0,url.length-1);
$.ajax({
url:"http://www.month.com/get_order?"+url,
type:"GET",
dataType:"JSON",
headers:{
'Authorization':"bearer"+token
},
success:function(res){
if(res.code == 200){
alert(res.msg);
localStorage.setItem('order_sn',res.data.order_sn);
localStorage.setItem('total',res.data.total);
window.location.href='pay.html';
}
if(res.code == 2001){
alert(res.msg);
window.location.href='login.html';
}
}
})
})
// 页面加载事件 获取商品详情数据
$(document).ready(function(){
var id = window.localStorage.getItem('goods_id');
if(isNaN(id) || id == ''){
alert('参数不正确');
return false;
}
var token = getToken();
var params = new Array();
params['id'] = id;
var sign = create_sign(params);
params['sign'] = sign;
var url = '';
for(var i in params){
url += i+'='+params[i]+'&';
}
url = url.substr(0,url.length-1);
$.ajax({
url:"http://www.month.com/goods_detail?"+url,
type:"GET",
dataType:"JSON",
headers:{
'Authorization':'bearer'+token,
},
success:function(res){
if(res.code == 200){
var str = '';
var data = res.data.goods;
str += "<img src='"+data['goods_avatar']+"' width='80px;'>"
str += "<p>"+data['goods_name']+"</p>"
str += "<p>"+data['goods_price']+"</p>"
str += "<p>"+data['goods_store']+"</p>"
str += "<p>"+data['id']+"</p>"
str += "<p><input type='text' class='number' value='1'/></p>"
str += "<button class='getOrder' ids='"+data['id']+"'>立即订购</button>"
$('.content').append(str);
}
if(res.code == 2001){
alert(res.msg);
}
}
})
})
</script>
愿每位清华学子,都能在清华大学计算机专业取得好成绩!