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應用的理解。