[PHP] ThinkAjax的用法解析及实例 →→→→→进入此内容的聊天室

来自 , 2020-04-05, 写在 PHP, 查看 111 次.
URL http://www.code666.cn/view/2c758933
  1. 重点函数1
  2.  
  3. $this->ajaxReturn($result,"型号增加成功!",1);
  4.  
  5. 第一个是返回的数据变量,第二个是返回的信息,第三个是数据返回的状态。
  6.  
  7.  
  8.  
  9. 重点函数2
  10.  
  11. ThinkAjax.send('/Index/delete/','ajax=1&partid='+partid,delComplete,'result');
  12.  
  13. 第一个参数:在控制器里面的函数名称
  14.  
  15. 第二个参数:需要传递的参数ajax=1好像不可少
  16.  
  17. 第三个参数:提交成功执行的函数名称
  18.  
  19. 第四个参数,就是显示“数据处理中~”这些提示信息的Div的名称。
  20.  
  21.  
  22.  
  23. 重点函数3
  24.  
  25. ThinkAjax.sendForm('frmpart','/Index/insert',addComplete,'result');
  26. 第一个参数代表提交名称为frmpart的表单
  27. 第二是参数是提交的地址
  28. 第三个参数,如果提交成功,执行的函数名称
  29. 第四个参数,就是显示“数据处理中~”这些提示信息的Div的名称。
  30.  
  31. <div id="result" class="none result" style="float:right;font-family:微软雅黑,Tahoma;width:150px;letter-spacing:2px"></div>
  32.  
  33.  
  34.  
  35.  
  36. function addComplete(data,status)
  37.  
  38. 其中的data参数,就是我们提交成功之后的返回值
  39.  
  40. $this->ajaxReturn($result,"型号增加成功!",1);
  41. 那么,data就是变量$result的值,sataus就是最后的这个参数"1"或者"0"
  42.  
  43.  
  44. 当然,别忘了在用ThinkAJAX的时候写上
  45. XML/HTML代码
  46. <load href="/Public/Js/Base.js" />
  47. <load href="/Public/Js/prototype.js" />
  48. <load href="/Public/Js/mootools.js" />
  49. <load href="/Public/Js/Ajax/ThinkAjax.js" />
  50.  
  51.  
  52. 下面是代码
  53.  
  54.  
  55.  
  56. 先看模板文件代码(着重看红色部分代码)
  57.  
  58. <tagLib name="html" />
  59. <include file="Public:header" />
  60.  
  61. <SCRIPT LANGUAGE="JavaScript">
  62. <!--
  63.  function addStock(){
  64.   ThinkAjax.sendForm('frmpart','/Index/insert',addComplete);
  65.  }
  66.  function addComplete(data,status){
  67.   if (status==1)
  68.   {
  69.    window.setTimeout(function (){window.location.href='/Mylib',20000});
  70.  
  71.   }
  72.  }
  73.  function delStock(partid){
  74.   ThinkAjax.send('/Index/delete/','ajax=1&partid='+partid,delComplete);
  75.  }
  76.  function delComplete(data,status){
  77.   if (status==1)
  78.   {
  79.    window.setTimeout(function (){window.location.href='/Mylib',20000});
  80.   }
  81.  }
  82. //-->
  83. </SCRIPT>
  84.  
  85. <table width="80%" border="1" cellspacing="0" bordercolorlight="#C0C0C0" bordercolordark="#FFFFFF">
  86. <!--数据新增表单-->
  87. <form name=frmpart>
  88.  <tr bgcolor='#E8E8E8'>
  89.    <td width="10%"><input type="hidden" name="ajax" value="1"><input type="button" value="新增数据" onclick="addStock()"></td>
  90.    <td width="38%">型号:<input type="text" id="partno" name="partno">
  91.  
  92.    <div id="result" class="none result" style="float:right;font-family:微软雅黑,Tahoma;width:150px;letter-spacing:2px"></div>
  93.  
  94.    </td>
  95.    <td width="25%">厂家:<input type="text" id="mfg" name="mfg"></td>
  96.    <td width="12%">批号:<input type="text" id="datecode" name="datecode"></td>
  97.    <td width="15%">数量:<input type="text" id="qty" name="qty"></td>
  98.  </tr>
  99.  </form>
  100.  
  101.  <tr bgcolor='#E8E8E8'>
  102.    <td width="10%"><strong>ID</strong></td>
  103.    <td width="38%"><strong>PartNo.</strong></td>
  104.    <td width="25%"><strong>Mfg.</strong></td>
  105.    <td width="12%"><strong>Datecode</strong></td>
  106.    <td width="15%"><strong>Qty.</strong></td>
  107.  </tr>
  108. <!--循环输出查询结果数据集-->
  109. <volist name='list' id='vo' >
  110.  <tr>
  111.    <td width="10%">{$vo.partid}</td>
  112.    <td width="38%">{$vo.partno}</td>
  113.    <td width="25%">{$vo.mfg}</td>
  114.    <td width="12%">{$vo.datecode}</td>
  115.    <td width="15%">{$vo.qty} <IMG SRC="/YunCode/Tpl/Public/images/del.gif" WIDTH="20" HEIGHT="20" BORDER="0" style="cursor:pointer" ALT="" onclick="delStock('{$vo.partid}')" align="absmiddle"></td>
  116.  </tr>
  117. </volist>
  118. </table>
  119.  
  120. <include file="Public:footer" />
  121.  
  122. 再看控制器代码:
  123.  
  124.  // 数据写入操作
  125.     public function insert() {
  126.         $Stk = D('Stock');
  127.   $Stk->create();
  128.   if($result=$Stk->add()) {
  129.    $this->ajaxReturn($result,"型号增加成功!",1);
  130.   }else {
  131.    $this->error("型号增加失败!");
  132.   }
  133.     }
  134.  
  135.     public function delete() {
  136.         $Stk = M('Stock');
  137.   $condition['partid'] = $_REQUEST['partid'];
  138.   if ($Stk->where($condition)->delete()) {
  139.    $this->ajaxReturn($partid, $partid."型号删除成功!", 1);
  140.   }else {
  141.    $this->error($Stk->getError());
  142.   }        
  143.     }
  144.  
  145. 详解二:
  146. 在动作模版页面添加代码:
  147. <load href="/Public/js/Base.js" />
  148. <load href="/Public/js/prototype.js" />
  149. <load href="/Public/js/mootools.js" />
  150. <load href="/Public/js/ThinkAjax.js" />
  151. <!--<load href="/Public/js/change.js" />  -->
  152. <script type="text/javascript">
  153. function change(){
  154. var ids = document.getElementById("name").value;
  155. ThinkAjax.send("/Code/fun","ajax=1&ids="+ids,'','result');
  156. }
  157. </script>
  158.          解释:
  159.                      第一个参数:在控制器里面的函数名称
  160.                      第二个参数:需要传递的参数ajax=1好像不可少
  161.                      第三个参数:提交成功执行的函数名称
  162.                      第四个参数:显示返回值的id
  163. 假设动作为:
  164. <input type="text" id="name" />
  165. <input type="submit" onclick="change()" />
  166. <div id="result">这里是返回信息</div>
  167. 控制器action代码:
  168. public function fun(){
  169.   $ids = $_REQUEST['ids'];   //接受参数 也可以用post方法接受
  170. $majoy = new Model("majoy");
  171. $data = $majoy->getBycollege_id($ids);
  172. if(!empty($data)){
  173.    $this->ajaxReturn("","已经存在",1);    //此处可以用$this->error("已经存在");
  174. }
  175. }
  176.         解释:第一个是返回的数据变量,
  177.                    第二个是返回的信息,
  178.                   第三个是数据返回的状态。为0即使失败,显示字体为红色,为1则代表成功,显示字体为绿色

回复 "ThinkAjax的用法解析及实例"

这儿你可以回复上面这条便签

captcha