⑴ 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{(這里是返回後可以作的操作)}