thinkphp中ajax使用實例(thinkphp內置支持ajax)


thinkphp中ajax使用實例(thinkphp內置支持ajax)

一、總結

1、thinkphp應該是內置支持ajax的,所以請求類型里面才會有是否是ajax

// 是否為 Ajax 請求 if (Request::instance()->isAjax()) echo "當前為 Ajax 請求";

// 是否為 Pjax 請求 if (Request::instance()->isPjax()) echo "當前為 Pjax 請求"; 

 

二、thinkphp中ajax使用實例

  1 一、jquery實現方法:
  2 MessageAction.class.php頁面代碼如下:
  3 <?php
  4 class MessageAction extends Action{
  5   
  6  function index(){
  7   $this->display(); 
  8  }
  9   
 10  function add(){ //1、控制器add方法  11   //ajaxReturn(數據,'提示信息',狀態) 
 12   $m=M('message');
 13   if($m->add($_GET)){
 14    $this->ajaxReturn($_GET,'添加信息成功',1); //2、以ajax方式返回  15   }else{
 16    $this->ajaxReturn(0,'添加信息失敗',0); 
 17   }
 18  }
 19   
 20 }
 21 ?>
 22  
 23 模板index.html代碼如下:
 24 <html>
 25 <head>
 26 <script type="text/javascript" src="__PUBLIC__/js/jquery-1.7.1.min.js"></script>
 27 <script type="text/javascript">
 28  $(function(){
 29   $('input:button').click(function(){  //1、表單ajax提交實例  30    var $title=$('input[name="title"]').val();
 31    var $message=$('input[name="message"]').val();
 32    $mess=$('#mess');
 33    $.getJSON('__URL__/add',{title:$title,message:$message},function(json){ //2.提交到控制器中的add方法 3、$.getJSON感覺是封裝的ajax的open方法  34     //alert(json);return false;
 35     if(json.status==1){
 36      $mess.slideDown(3000,function(){
 37       $mess.css('display','block'); 
 38      }).html('標題為'+json.data.title+'信息為'+json.data.message); 
 39     }else{
 40      $mess.slideDown(3000,function(){
 41       $mess.css('display','block'); 
 42      }).html('信息添加失敗,請檢查'); 
 43     }  
 44    });
 45   }) 
 46  })
 47 </script>
 48 </head>
 49 <body>
 50 <div style="display:none; color:red;" id="mess"></div>
 51 <form action="" method="get">
 52  標題:<input type="text" name="title" /><br />
 53  信息:<input type="text" name="message" /><br />
 54   <input type="button" value="提交" />
 55 </form>
 56 </body>
 57 </html>
 58  
 59 二、ThinkPHP實現方法:
 60 MessageAction.class.php頁面代碼如下:
 61 <?php
 62 class MessageAction extends Action{
 63   
 64  function index(){
 65   $this->display(); 
 66  }
 67  
 68  function addtwo(){
 69   $m=M('message');
 70   if($vo=$m->create()){
 71    if($m->add()){
 72     $this->ajaxReturn($vo,'添加成功',1); 
 73    }else{
 74     $this->ajaxReturn(0,'添加失敗',0); 
 75    } 
 76   }else{
 77    $this->error($m->getError()); 
 78   }
 79  }
 80 }
 81 ?>
 82  
 83 模板index.html代碼如下:
 84 <html>
 85 <head>
 86 <script type="text/javascript" src="__PUBLIC__/Js/Base.js"></script>
 87 <script type="text/javascript" src="__PUBLIC__/Js/prototype.js"></script>
 88 <script type="text/javascript" src="__PUBLIC__/Js/mootools.js"></script>
 89 <script type="text/javascript" src="__PUBLIC__/Js/ThinkAjax.js"></script>
 90 <script type="text/javascript">
 91  function add(){
 92   //ThinkAjax.sendForm(表單ID,URL,回調函數,信息顯示的地方);
 93   ThinkAjax.sendForm('frm','__URL__/addtwo',wc); 
 94  }
 95  function wc(data,status){
 96   if(status!=1){
 97    alert('發送失敗');
 98   }else{
 99    $('list').innerHTML+='標題'+data.title+',信息'+data.message; 
100   } 
101  }
102 </script>
103  
104 </head>
105 <body>
106 <div id="list"></div>
107 <form action="" method="POST" id="frm">
108  標題:<input type="text" name="title" /><br />
109  信息:<input type="text" name="message" /><br />
110   <input type="button" value="提交" onClick="add()" />
111 </form>
112 </body>
113 </html>
114  
115 感興趣的朋友可以測試運行一下本文所示實例,可以加深對Ajax應用的理解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM