html+jq+css
<!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).css({"backgroundColor":"#cccccc";})
});
//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'));
$arr = []; //
for($i=0;$i<$num;$i++){ //用于循环产生菜名
$stu_num = mt_rand(0,18); //随机产生菜名
while(in_array($stu_num,$arr)){
$stu_num = mt_rand(0,17);
}
array_push($arr,$stu_num);
}
$re = []; //返回的学生数组
foreach($arr as $k){
array_push($re,$stu_arr[$k]);
}
$caidan =$stu_arr[$k]."|";
file_put_contents('caidan.txt',$caidan,FILE_APPEND);
//保存数据库
echo json_encode($re);
运行结果