通过AJAX实现随机点菜

HTML部分

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
	<style>
		.header{
			width:80%;
			height:80px;
			min-width: 505px;
			margin:0 auto;
			text-align: center;
		}
		.header input{
			height: 60px;
			width: 400px;
			border: 1px solid #ccc;
			box-sizing: border-box;
			vertical-align: middle;
			outline: none;
			text-indent: 30px;
			font-size: 20px;
		}
		.header button{
			background-color: gold;
			width: 100px;
			height: 60px;
			line-height: 60px;
			color: #FFF;
			border: 1px solid #ccc;
			vertical-align: middle;
			outline: none;
		}
		.list{
			width: 80%;
			min-height: 505px;
			background-color: beige;
			margin:0 auto;
		}
		.list span{
			display: inline-block;
			background-color: aquamarine;
			color: #333;
			padding:10px 20px;
			border-radius:5px;
			margin: 20px;
			cursor: pointer;
			
		}
	</style>
	<title></title>
</head>
<body>
	<div class="header">
		<input type="text" name="number"><button>随机产生菜名</button>
	</div>
	<div class="list">
	</div>
	<script>
	$(function(){
		$('button').click(function(){
			$('.list').on('click','span',function(){
				$(this).hide();
			})
			//get请求
			$.get('create.php',{num:$('input').val()},function(e){
				$('.list').html('');
				for(var i=0;i<e.length;i++){
					$('<span>'+e[i]+'</span>').appendTo($('.list'));
				}
			},'json')
		});
	})
	</script>
</html>

PHP部分

<?php 
$num = (int)$_GET['num'];
//至少产生1道菜
if($num<=0){
	$re= [
		'code' => 1001,
		'message'=>'至少产生一道菜'
	];
	echo json_encode($re);
	die;
}
//所有的菜名
$stu_arr = explode('|',file_get_contents('stu.txt'));
//in_array  判断是否在一个数组中
//mt_rand 产生随机数
$arr = [];  //用户保存菜名的编号
for($i=0;$i<$num;$i++){ //用于循环产生菜名编号
	$stu_num = mt_rand(0,53); //随机产生
	while(in_array($stu_num,$arr)){ //判断是否产生了相同的菜名编号
		$stu_num = mt_rand(0,52);;
	};
	array_push($arr,$stu_num);
};

$re = []; //返回的菜名数组
foreach($arr as $k){
	array_push($re,$stu_arr[$k]);
}
echo json_encode($re);

效果截图

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42535010/article/details/106203258