版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YAruli/article/details/79829667
JQuery&TP5-Ajax传表单数据到thinkphp5完成数据入库实例
大家好,我是Yangrl;
今天小长假第一天,下午吃鸡,大吉大利!意识和枪法的完美结合催生出的怪物——ID:Yangrl.
(在朋友面前随随便便秀了个灭队,很舒服。)
咳咳,少说废话。昨天的Ajax初体验说了这几天在做一个在线报名系统,今天总结一下。(简单总结,请自行拓展延伸)↓
后台:php框架-Thinkphp5;
首先一个简单表单验证&&jquery.Ajax部分:
<script type="text/javascript">
$(document).ready(function(){
$("#add").click(function(){
var user = $("#realname").val();
// var username = ^[\u4e00-\u9fa5]{0,}$;
if (user.length == 0) {
alert("请输入您的姓名!");
return false;
}
var tel=$("#tel").val();
var telcheck=/^[1]{1}[0-9]{10}/;
if (tel.length == 0) {
alert("填好电话号码我们才能更快联系你哦~");
return false;
} else if (!telcheck.test(tel)) {
alert("请填写真实手机号码");
return false;
}
var formData = $("#form1").serialize();//重点
$.ajax({
type:"POST",
url:"{:url('signup/save')}",//index模块下signup类中的save方法,用来接受数据进行验证并传入model层进行保存。
data:formData,
dataType:"json",
success:function(data) {
alert("报名成功!");
$("#form1 input").val("");//成功入库后清空表单中文本框的值,方便再次填写。
},
error:function(jqXHR) {
alert("报名失败,错误:" + jqXHR.status);
},
});
});
});
</script>
其他我就不贴出来了(对不起,代码太垃圾,自卑。),不用给表单传递方法,传递地址这些,只要给表单一个id就行了。
提交按钮设置type为button,是因为ajax返回请求的时候状态出现了200还是0错误?不让他立即跳转。在这边不深究。后面会单独总结ajax返回请求错误集锦。
然后是thinkphp部分:
public function save()
{
$data = input('post.');//获取值
$validate = validate('Signup');//利用tp验证器进行验数据验证
if (!$validate->scene('add')->check($data)) {
$this->error($validate->getError());
}
$res = $this->obj->add($data);//验证成功后的数据传入model层入库操作
if ($res) {
return json($data);//我随便写,响应给前端
}else {
return json($data);
}
}
就是成功以后把结果返回给前端进行响应,我只是简单写了直接return json();大家看个效果。(懒癌发作)。
result:
Have a good time~
end.
“承认代价,比较权衡,不问是非,只争高下。”