怎么用Thinkphp+jquery实现ajax的提交,接收处理和返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用Thinkphp+jquery实现ajax的提交,接收处理和返回相关的知识,希望对你有一定的参考价值。

做的ajax发帖例子
html页面:<script>
$(function()
$(\'#btn\').click(function()
// 获取板块id的值
var bid = $("#bid").val();
var tname = $("#tname").val();
var content = ue.getContent();
if(!tname)
alert(\'帖子标题不能为空哦~\');
return false;

if(!content)
alert(\'内容不能为空哦~\');
return false;

if(!bid)
alert(\'非法操作\');

$.get(\':U(\'Home/LunTan/add\')\',bid:bid,tname:tname,content:content,function(data)
console.log(data[\'href\']);
var newDiv = $(\'#maxList\').clone(true);
console.log(newDiv);
// 添加的主题
newDiv.find(\'#tn\').html(data[\'tname\']);
// 发帖的时间
newDiv.find(\'.date\').html(data[\'posttime\']);
// 发帖人
newDiv.find(\'#use\').html(data[\'username\']);
// newDiv.find(\'#bbid\').attr(\'href\',":U(\'Home/LunTan/reply\',array(\'id\'=>"data[\'id\']",\'bid\'=>"data[\'bid\']"))");
newDiv.find(\'#bbid\').attr(\'href\',data[\'href\']);
newDiv.show();
$(\'#maxList\').before(newDiv);
,\'json\');

return false;
)
)
</script>
----php页面
public function add()
// $.get(\':U(\'Home/LunTan/add\')\',bid:bid,tname:tname,content:content,function(data)
// 获取当前用户的id
$_POST[\'uid\'] = $_SESSION[\'user\'][\'id\'];
$_POST[\'username\'] = $_SESSION[\'user\'][\'username\'];
// 获取板块的id
$_POST[\'bid\'] = $_GET[\'bid\'];
// 获取板块的主题
$_POST[\'tname\'] = $_GET[\'tname\'];
// 获取帖子的内容
$_POST[\'content\'] = $_GET[\'content\'];
//主题添加时间
$_POST[\'posttime\'] = time();
// 创建分页对象
$tiezi = M(\'tiezi\');
$tiezi ->create();
$lastid =$tiezi->add($_POST);
if($lastid)
$_POST[\'id\']= $lastid;
$_POST[\'href\'] ="/index.php/Home/LunTan/reply/id/".$_POST[\'id\']."/bid/".$_POST[\'bid\'].".html";
// $_POST[\'href\'] ="/index.php/Home/LunTan/reply/id/\'.$_POST[\'id\'].\'/bid/\'.$_POST[\'bid\'].\'.html";
// ":U(\'Home/LunTan/reply\',array(\'id\'=>$vo[\'id\'],\'bid\'=>$vo[\'bid\']))"
$this->ajaxReturn($_POST);
参考技术A

其实和普通的处理方法的原理是一样的,只不过处理地方法可能有些不一样;

举个例子:向LoginController.class.php发送请求

    JS :  $.post('/Login/index','username':123456,'pwd':123456,function(data)

          data就是返回过来的数据

    ,'json')

    PHP : 用$_POST接收或者I('post.username'),I('post.pwd'),经过处理后返回处理结果,$this->ajaxReturn(array('status'=>1,'info'=>'登陆成功'));类似这样的

参考技术B 1、首先要引入jQuery包,

2、然後写出如下所示的代码样式:
$(function()
$("#a").blur(function()
var val=$(this).val();
url='__MODULE__/FORM/ajax';/*你所传的控制器的方法*/
data=value:val,type:'json';/*数据以json格式发送出去*/
$.post(url,data,function(msg) //msg是回调函数返回的数据
);
);
);
3、後台写个方法 如下所示:
public function ajax()
if($_POST['type']=='json')
$data=I('post.value');
接下来进行验证,或者是数据处理 比如说的到 布尔值
//调用函数
$this->ajaxReturn($booldata);



4、此时,msg收到的就是一个 後台传过来的 数据 $booldata
参考技术C 在模板文件中写ajax 例如

var data = username:username,nickname:nickname,password:password,phone:phone,email:email,sex:sex,date:date,state:state;
$.ajax(
url:'__URL__/checkform',
data:data, //data是提交要处理的数据
type:'POST',
success:function(data) //这个data是checkform返回的数值
//alert(data)
if(data ==0)
//成功

window.location.href =":U('User/index')"
else
window.location.href =":U(User/add)"


)
url是本控制器的checkform 方法 根据提交的数据进行操作 操作成功 返回一个值 不成功返回另一个值 然后你自己判断 进行跳转
参考技术D <script>
$(document).ready(function () 
    $("#submit").click(function () 
        var options = 
            url: "",
            type: 'post',
            dataType: 'json',
            data: $("#form").serialize(),
        ;
        $.ajax(options).done(function(e)
            if(!e.success)
               alert(e.msg);
             else 
               alert(e.success);              
            
        );
        return false;
    );
);
</script>

AJAX提交和THINKPHP没什么关系。

thinkphp中怎么返回json数据

使用thinkphp框架开发,不知道如何返回JSON字符串,ajax无法调用 有三种方式可以返回

1、若是数据库实体,可以使用toJson()方法
$user = User::get(1); echo $user->toJson();

2、若非数据库实体,可以使用json view方法,thinkphp除了实现response对象,还实现了jsonResponse若非数
$data = [    'result'=>'success',    'msg'=>'操作成功!' ]; //class Json extends Response
return json($data);


3、若非数据库实体,可以使用json_encode()方法:
$data = [    'result'=>'success',    'msg'=>'操作成功!' ];
return json_encode($data);

thinkphp5 ajax如何返回json

参考技术A $data['status']  = 1;
$data['content'] = 'content';
$this->ajaxReturn($data);

通过ajaxReturn来实现。

本回答被提问者采纳

以上是关于怎么用Thinkphp+jquery实现ajax的提交,接收处理和返回的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP JQuery Ajax 的实现实例

jquery+thinkphp实现跨域抓取数据的方法

thinkphp 用jquery ajax前后台交互

基于php(Thinkphp)+jquery 实现ajax多选,反选,不选 删除数据 新手学习向

thinkphp中怎么用ajax?

文章或者观点说说等点赞功能实现(thinkphp)