怎么用Thinkphp+jquery实现ajax的提交,接收处理和返回
2016-05-01
展开全部
做的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);
}
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);
}
展开全部
其实和普通的处理方法的原理是一样的,只不过处理地方法可能有些不一样;
举个例子:向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'=>'登陆成功'));类似这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在模板文件中写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 方法 根据提交的数据进行操作 操作成功 返回一个值 不成功返回另一个值 然后你自己判断 进行跳转
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 方法 根据提交的数据进行操作 操作成功 返回一个值 不成功返回另一个值 然后你自己判断 进行跳转
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<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没什么关系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询