688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 个人技术总结 |
| 其他参考文献 | 《构建之法》 |
在团队项目Sofu中,当修改用户信息中的邀请人信息时,由于只有注册时间早于该用户注册时间的用户才能够有邀请该用户的资格,并且这样的用户有很多,所以为方便管理员的修改,使用layui搜索下拉框进行选择

在普通下拉框的基础上,添加lay-search属性,实现搜索下拉框
<div class="layui-form-item">
<label class="layui-form-label required">邀请该用户的用户ID</label>
<div class="layui-input-block">
<select id="user_info_invitedby" name="invitedby" lay-verify="required" lay-search="" size="2" style="height: 100px">
<option value="">直接选择或搜索选择</option>
</select>
</div>
</div>
将要修改的用户id作为参数传递给后端
后端按照对象数组的格式返回注册时间早于该用户的所有用户
前端再创建下拉框的选项利用append方法循环添加到搜索下拉框
对表单重新渲染
function get_invitedby(uid){
$.ajax({
url: "<?=$api_link[$page_name]; ?>", //后台数据地址
data:{
"act":"get_invitedby",
"uid":uid,
},
async : false,
traditional:true,
dataType : "json",
timeout : 5000,
success: function (data){
$('#user_info_invitedby').html("<option value=\"\">直接选择或搜索选择</option>");
for(var i = 0; i < data.data.length; i++){
$('#user_info_invitedby').append(new Option(data.data[i].showtext, data.data[i].value));
}
layui.form.render("select");
},
error : function(data){
//接口失败回调
layer.msg("接口失败",{icon: 2});
}
})
}
后端先通过前端传递过来的用户id搜索到该用户的注册时间
再从用户表中搜索所有注册时间早于该用户的用户
按照对象数组的格式返回至前端,其中对象中有两个字段:showtext和value,分别代表下拉框选项的文字描述和选项的值
case("get_invitedby"):{
$res = new Obj();
$res -> data = [];
$user = GET_OR_POST('uid', 0, null);
if($user != null){
$sql = "SELECT * FROM ".$dbconfig["dbqz"] . "_" . "user" . " WHERE user_id = $user";
$result = $DB -> query($sql);
$temp = null;
if($result){
$num_result = $result -> num_rows;
if($num_result == 1){
$row=mysqli_fetch_assoc($result);
$temp = new User();
$temp -> uid = $row['user_id'];
$temp -> nickname = $row['nickname'];
$temp -> wx_openid = $row['wx_openid'];
$temp -> avatar = $row['avatar'];
$temp -> state = $row['state'];
$temp -> invitecode = $row['invitecode'];
$temp -> invitedby = $row['invitedby'];
$temp -> reg_time = $row['reg_time'];
$temp -> login_time = $row['login_time'];
}
else{
$res -> code = 201;
goto get_invitedby_out;
}
}
else{
$res -> code = -201;
goto get_invitedby_out;
}
$sql = "SELECT * FROM ".$dbconfig["dbqz"] . "_" . "user" . " WHERE reg_time < '" . $temp -> reg_time . "'";
$result = $DB -> query($sql);
if($result){
$items = [];
$temp = new stdClass;
$temp -> showtext = "官方内推";
$temp -> value = 0;
$items[] = $temp;
unset($temp);
while($row=mysqli_fetch_assoc($result)){
$temp = new stdClass;
$temp -> showtext = $row['user_id'];
$temp -> value = $row['user_id'];
$items[] = $temp;
unset($temp);
}
$res -> data = $items;
}
else{
$res -> code = -202;
}
}
else{
$res -> code = -200;
}
$res -> code = 200;
get_invitedby_out:
echo json_encode($res);
break;
}
流程图




不能给自己设限,要去大胆尝试、创新,我们才能开拓出更丰富的天地