以下写一个简单的From提交
**注 使用表单验证 form-item 必须添加 prop ='xxxx' **
~~~
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>iview example</title>
<link rel="stylesheet" type="text/css" href="//unpkg.com/iview/dist/styles/iview.css">
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/iview/dist/iview.min.js"></script>
<script src="//unpkg.com/axios/dist/axios.min.js"></script>
<script src="//cdn.bootcss.com/qs/6.5.1/qs.js"></script>
</head>
<body>
<div id="app">
<!--ref=userForm ref指子组件; model="formData" 绑定formData 提交表单用到的; rules 验证规则-->
<i-form ref="userForm" :model="formData" :rules="ruleInline">
<form-item prop="user">
<!--v-model="formData.user" 进行数据绑定-->
<i-input type="text" v-model="formData.user" placeholder="用户名">
<icon type="ios-person-outline" slot="prepend"></icon>
</i-input>
</form-item>
<form-item prop="password">
<i-input type="password" v-model="formData.password" placeholder="用户密码">
<icon type="ios-locked-outline" slot="prepend"></icon>
</i-input>
</form-item>
<form-item>
<!--@click="handleSubmit('userForm')" 点击按钮触发事件并传入要验证的form名-->
<i-button type="primary" @click="handleSubmit('userForm')">添加</i-button>
</form-item>
</i-form>
</div>
<script>
var Main = {
data() {
return {
// 相关数据配置跟规则配置
formData: {
user: '',
password: ''
},
ruleInline: {
user: [
// 配置是否验证, 错误提示信息, 触发验证场景
{ required: true, message: '请输入用户名称.', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入用户密码..', trigger: 'blur' },
{ type: 'string', min: 6, message: '最少6位密码', trigger: 'blur' }
]
}
}
},
methods: {
handleSubmit(name) {
// 验证是否通过规则
this.$refs[name].validate((valid) => {
if (!valid) {
this.$Message.error('验证失败!');
return;
}
})
// 发送到接口
var postData = Qs.stringify(this.formData); // 必须用到的一个关键点, 把JSON数据转成 后端能接收到的 FORM-DATA
axios.post("{:url('user')}", postData).then((res) => {
var data = res.data // 这个是插件获取后后端的返回数据 记得是.data
if (!res.data.status) {
this.$Message.error(data.msg);
} else {
this.$Message.success(data.msg);
}
})
}
}
}
var Component = Vue.extend(Main)
new Component().$mount('#app')
</script>
</body>
</html>
~~~
接收 后端代码
~~~
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\User;
class Index extends Controller
{
protected $request;
protected $params;
public function __construct()
{
parent::__construct();
$this->request = request();
$this->params = $this->request->param();
}
public function index()
{
return $this->fetch();
}
/**
* 添加用户
*/
public function user(User $user)
{
try {
$user->saveUser($this->params);
} catch(\Exception $e) {
return json([
'status' => 0,
'msg' => $e->getMessage(),
]);
}
return json([
'status' => 1,
'msg' => '添加成功'
]);
}
}
~~~
- 介绍
- EasyWechat3
- 安装篇
- 吃上Easywechat--获取用户信息篇
- 吃上Easywechat--模板消息篇
- 吃上Easywechat--支付篇
- Easywechat4
- 安装与接入
- 公众号
- 网页授权
- JSSDK
- 发送模板消息
- 自定义菜单
- 消息类型对应处理
- 微信支付
- 统一下单
- 支付通知
- 接入企业号
- 开发福利
- 福利篇--内透
- 福利篇--微信远程调试
- 队列
- 队列搭配Supervisor
- 队列搭配Supervisor--多进程
- think队列微信通知
- 队列执行情况查询与反馈
- 模型使用进价
- 模型,抛出异常,减少if的使用
- 多使用模型,好处还是有的
- 优化建议
- 多条件搜索代码优化(闭包查询)
- 使用group & 子查询进行统计
- 杂类
- 写Composer包
- PHP单例
- PPT转图片
- 个人开发环境
- Xdebug配置
- emoji表情
- 后端玩iView
- 准备篇
- 列表List--普通篇
- 表单Form篇
- 列表List--异步篇
- 开发小技巧
- 时间戳(日期)统计
- API版本
- 技术群
- Java小笔记
- WebSocket
- 跨域配置
- Nginx配置(ssl 强制ssl反向代理)
- Json信息 response返回