php教程

超轻量级php框架startmvc

thinkPHP5 ajax提交表单操作实例分析

更新时间:2020-03-25 13:30:41 作者:startmvc
本文实例讲述了thinkPHP5ajax提交表单操作。分享给大家供大家参考,具体如下:<!DOCTYPEhtml&

本文实例讲述了thinkPHP5 ajax提交表单操作。分享给大家供大家参考,具体如下:


<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
 <script>
 function ajaxPost(){
 var formData = $("#myform").serialize();
 //serialize() 方法通过序列化表单值,创建 URL 编码文本字符串,这个是jquery提供的方法
 $.ajax({
 type:"post",
 url:"{:url('Index/index/test')}",
 data:formData,//这里data传递过去的是序列化以后的字符串
 success:function(data){
 $("#content").append(data);//获取成功以后输出返回值
 }
 });
 }
 </script>
 </head>
 <body>
 <form id="myform"><!--这里给表单起个id用于获取表单并序列化-->
 <input type="text" name="mess" />
 <input type="text" name="id" />
 <button onclick="ajaxPost()">---------</button>
 </form>
 <div id="content">
 </div>
 </body>
</html>

其实跟正常的ajax没什么区别,主要就是利用jquery的serialize()方法序列化表单

中间遇到些麻烦就是还没熟悉thinkphp5框架,之前一直用的3.2.3还没来得及,俩版本差别还是有的

一个是$_POST不能用了还有就是原来ajax的url可以使用框架的U方法没了具体看了看think下的助手函数发现是url

下边是随便写了个方法用于返回json数据


public function test($mess,$id){
 if($mess == '123'){
 return json("ajax成功!".$mess."---".$id);
 }else{
 return json("你输出的是其他值:".$mess."---".$id);
 }
}

此外,常规的参数提交与处理方法如下:

表单提交传参:


<input type="hidden" name="project_name" value="$project_name"/>

在控制器中获取


$project_name=input("post.project_name");

php中跳转传参:


$this->success('新增项目成功',url("Version/index",array('project_name'=>$project_name)));
die;

thinkPHP5 ajax 提交表单