php代码
<?php
require_once 'vendor/Db.php';//引用数据库操作类
$cmd = $_REQUEST['cmd'] ?? 'list';//识别当前操作命令,默认获取列表
switch ($cmd) {
case 'list'://返回列表数据
$page = $_REQUEST['page'] ?? 1;
$limit = $_REQUEST['limit'] ?? 10;
$db = Db::instance();
$data = $db->select('student', '*', ['LIMIT' => [($page - 1) * $limit, $limit]]);
$count = $db->count('student');
$result = [
'code' => 0,
'count' => $count,
'data' => $data
];
break;
case 'get'://根据id获取当前学生数据
$id = $_REQUEST['id'] ?? 0;
if ($id) {
$db = Db::instance();
$data = $db->get('student', '*', ['id' => $id]);
$result = [
'code' => 0,
'data' => $data
];
} else {
$result = [
'code' => 1,
'msg' => 'param error'
];
}
break;
case 'add'://新增学生
$db = Db::instance();
$data = $db->get('student', '*', ['code' => $_REQUEST['code']]);
if (!$data) {
$ret = $db->insert('student', [
'code' => $_REQUEST['code'],
'name' => $_REQUEST['name'],
'faculty_name' => $_REQUEST['faculty_name'] ?? '',
'grade_name' => $_REQUEST['grade_name'] ?? '',
'instructor_name' => $_REQUEST['instructor_name'] ?? '',
]);
$result = [
'code' => 0,
'msg' => '添加成功',
];
} else {
$result = [
'code' => 1,
'msg' => '添加失败,学号已存在',
];
}
break;
case 'edit'://修改学生信息
$ret = Db::instance()->update('student', [
'name' => $_REQUEST['name'],
'faculty_name' => $_REQUEST['faculty_name'] ?? '',
'grade_name' => $_REQUEST['grade_name'] ?? '',
'instructor_name' => $_REQUEST['instructor_name'] ?? '',
], ['id' => $_REQUEST['id'], 'code' => $_REQUEST['code']]);
if ($ret) {
$result = [
'code' => 0,
'msg' => '修改成功',
];
} else {
$result = [
'code' => 1,
'msg' => '不存在此记录',
];
}
break;
case 'del'://根据id删除学生
$ret = Db::instance()->delete('student', ['id' => $_REQUEST['id']]);
if ($ret) {
$result = [
'code' => 0,
'msg' => '删除成功',
];
} else {
$result = [
'code' => 1,
'msg' => '不存在此记录',
];
}
break;
}
echo json_encode($result);
获得数据库全部数据
js代码
// pages/test/test.js
Page({
/**
* 页面的初始数据
*/
data: {
students:[1,2],
cmd:"add",
code:"",
name:"",
faculty_name:"",
grade_name:"",
instructor_name:"",
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// console.log(that.data.students)
},
addSubmit:function(){
const that = this;
wx.request({
url: '域名/backend/student.php',
method:'GET',
data:JSON.parse(JSON.stringify({
cmd:"list"
})),
success:function(res){
console.log(that.data.students)
that.setData({
students:res.data.data
})
console.log(that.data.students)
},
fail:function(){
console.log("fail")
}
})
}
})
输出展示:
增
wxml页面
<scroll-view>
<view>
<form action="" bindsubmit="addSubmit" data-ondex="{{index}}">
<view>
<label>学号</label>
<input type="text" name="code" bindinput="getCode"/>
</view>
<view>
<label>姓名</label>
<input type="text" name="name" bindinput="getName"/>
</view>
<view>
<label>院系</label>
<input type="text" name="faculty_name" bindinput="getFacultyName"/>
</view>
<view>
<label>年级</label>
<input type="text" name="grade_name" bindinput="getGradeName"/>
</view>
<view>
<label>辅导员</label>
<input type="text" name="instructor_name" bindinput="getInstructorName"/>
</view>
<button form-type="submit">注册</button>
</form>
</view>
</scroll-view>
js代码
Page({
/**
* 页面的初始数据
*/
data: {
students:[1,2],
cmd:"add",
code:"",
name:"",
faculty_name:"",
grade_name:"",
instructor_name:"",
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
addSubmit:function(){
const that = this;
wx.request({
url: '域名/backend/student.php',
data:
JSON.parse(JSON.stringify({
cmd:that.data.cmd,
code:that.data.code,
name:that.data.name,
faculty_name:that.data.faculty_name,
grade_name:that.data.grade_name,
instructor_name:that.data.instructor_name
}))
,
method:'GET',
success:function(res){
//友情提示
},
fail:function(){
console.log("fail")
}
})
},
getCode:function(e){
this.setData({
code:e.detail.value
})
},
getName:function(e){
this.setData({
name:e.detail.value
})
},
getFacultyName:function(e){
this.setData({
faculty_name:e.detail.value
})
},
getGradeName:function(e){
this.setData({
grade_name:e.detail.value
})
},
getInstructorName:function(e){
this.setData({
instructor_name:e.detail.value
})
}
})
1.wx.request中data为传递的参数,cmd的值根据想要的功能(此处为增加,add)参考php中case设置值。参数名参考php中设置的值,和wxml里input的name。
2.JSON.parse(JSON.stringify({}))将数据转换为JSON包。
删
根据id(也可根据学号,此处为id)删除对应信息。
js代码
const that = this;
wx.request({
url: '域名/backend/student.php',
method:'GET',
data:JSON.parse(JSON.stringify({
cmd:"del",
id:10
})),
success:function(){
console.log("success")
},
fail:function(){
console.log("fail")
}
})
改
根据id和学号,对应进行修改,id可以通过wxml传参,但此处为测试原理,故简化直接给出。
js代码
Page({
/**
* 页面的初始数据
*/
data: {
students:[1,2],
cmd:"add",
code:"",
name:"",
faculty_name:"",
grade_name:"",
instructor_name:"",
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// console.log(that.data.students)
},
addSubmit:function(){
const that = this;
wx.request({
url: '域名/backend/student.php',
method:'GET',
data:JSON.parse(JSON.stringify({
cmd:"edit",
id:8,
code:that.data.code,
name:that.data.name,
faculty_name:that.data.faculty_name,
grade_name:that.data.grade_name,
instructor_name:that.data.instructor_name
})),
success:function(){
console.log("success")
},
fail:function(){
console.log("fail")
}
})
},
getCode:function(e){
this.setData({
code:e.detail.value
})
},
getName:function(e){
this.setData({
name:e.detail.value
})
},
getFacultyName:function(e){
this.setData({
faculty_name:e.detail.value
})
},
getGradeName:function(e){
this.setData({
grade_name:e.detail.value
})
},
getInstructorName:function(e){
this.setData({
instructor_name:e.detail.value
})
}
})
查
根据id查询信息
js代码
const that = this;
wx.request({
url: 'https://www.kejishenghuo.cn/backend/student.php',
method:'GET',
data:JSON.parse(JSON.stringify({
cmd:"get",
id:1
})),
success:function(res){
console.log(res.data.data)
},
fail:function(){
console.log("fail")
}
})
输出展示
不足&改进想法
1.应该根据学号查询、删除,而非id