⑴ thinkphp中怎么用ajax
thinkphp中使用ajax很简单.主要掌握的地方有三个.
第一.tp中ajax的url需要使用大U方法.比如:$.post("{:U('User/add')}")
第二.控制器中返回结果得第一种方法.$this->error('失败','',true); 第三个参数为true.则发挥的是json数据.包含info.status.url三项.
第三.控制器中返回结果的第二种方法.$this->ajaxReturn(array('customKey1'=>'customValue1','customKey2'=>'customValue2','customKey3'=>'customValue3')).
掌握以上三点和ajax基本使用方法.那么在tp中使用ajax也就掌握了.简单的例子如下.伪代码,或许有错.
模板中:
<script>
$.post("{:U('User/add')",{uname:xiaoming,age:15},function(data){
//data接收返回数据
if(data.status==1){
alert(data.info);
location.href=data.url;
}else{
alert('错误');
}
});
</script>
控制器中:
publicfunctionadd(){
if(IS_AJAX){
$name=I('post.name','','trim');
$age=I('post.age','','trim');
if($name&&$age){
//插入数据
$this->success('添加成功',U('User/index'),true);
}else{
$this->ajaxReturn(array(
'status'=>0,
'info'=>'大爷,您没输入名字',
'url'=>U('User/add')
));
}
}else{
returnfalse;
}
}
大概就是这样子.至于剩下的$.ajax.$.getJson等等都是一样的道理
⑵ 用php+ajax+mysql如何做到在文本框中输入查询条件的同时搜索出不同的结果然后在页面动态显示。
利用jquery的ajax封装操作会简单许多。利用keyup或者keydown去触发事件,文本框中的数据传递至后台匹配查询,再return 回来。
⑶ thinkphp怎样获取ajax请求数据
一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新.
首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:
代码如下:
<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >删除</a>
上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:
jQuery(".list a.delete").click(function(){
if(confirm("你确定要删除吗?")){
var _this=this;
var id = jQuery(_this).attr("id");
jQuery.ajax({
url : '/Search/index.php/Jason/delete?',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = data.del;
if(del == 1){//删除成功
jQuery("#"+id).parents(".list").remove();
}else{//删除失败
alert("删除失败");
}
}
});
}
});
大家看函数的头部:jQuery(".list a.delete").click(),jQuery后面的标签是很重要的,这就保证了jquery很准确的响应页面中用户点击的“位置”,添加的事件为click(),在click里添加响应事件的代码:var id = jQuery(_this).attr("id");获取a对应的id,因为这个id是我们删除数据库时用到的链接id,当然这种直接明文的方式不好,在这里只是介绍整个响应过程。调用ajax,实现异步的运行整个过程。我们设置了js接受的是json串,这里的方式应该有很多种吧,我没有去尝试,大家要是有兴趣可以自行尝试一下。/Search/index.php/Jason/delete?这句话就是js去请求php的接口,php接口对用的代码如下:
注意ajax在求php接口时的路径,也就是delete函数必须放在JasonAction.class.php中,此例子是必须这样的:
代码如下:
public function delete(){
if($this->isGet()){
$userId = session("uid");//用户登录
if(!empty($userId)){
$a = M('***');
$id = $this->_get('id');
$result=$a->where("id=$id")->delete();//删除
if($result > 0){
$arr = array("del"=>'1');
}else{
$arr = array("del"=>'0');
}
$json_str = json_encode($arr);
echo $json_str;//返回给js
}
}
}
相信大家对上面的代码不会陌生吧,整个过程都是thinkphp框架内部配置完毕的.
var del = data.del;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应.
复制代码代码如下:
if(del == 1){//删除成功
jQuery("#"+id).parents(".list").remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中,
}else{//删除失败
alert("删除失败");
}
整个响应的过程就是这样,至于效果优化,是优化和细化方面的问题,后来,身边的同事又告诉我前台移除响应链接的另一个动态效果:
即将:
代码如下:
jQuery("#"+id).parents(".list").remove();
替换为:
代码如下:
jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});
⑷ php网站中怎么查询数据库并用ajax实时显示结果
$.ajax({url:"page.html",success:function(data){$('#div_area').html(data);}});
⑸ AJAX+PHP_!_!
代码可否具体点
⑹ php+ajax搜索框功能,并能在第二个页面显示搜索结果
原理就是这样:
用户输入.
ajax根据用户输入内容到数据库匹配并返回数据;
提交,展示结果;
⑺ thinkphp怎么利用ajax做无刷新的搜索功能
用ajax提交搜索关键词,php处理后返回结果,交由javascript处理就可以了
⑻ php+ajax 如何实现多条件筛选
给每个列表添加一个统一标记就可以了,所有dl加上一个sel的class,以及每个选中的加check的标记
<dlid="select2"class="neicun"><dt>内存</dt><ddclass="check">512M</dd>
<dlid="select1"class="pinpai"><dt>品牌</dt><ddclass="check">XXX</dd>
//jquery事件绑定
$('.selectdd').click(function(){
$(this).parent().find('.check').removeClass('check');
$(this).addClass('check');
})
//www.hi-docs.com/jquery/click.html
ajax把每个check的值拼起来就可以了
⑼ PHP 关于ajax的返回问题
你用的是jquery?那么查找一下jquery调用ajax的函数,一般是success{(这里是返回后可以作的操作)}