博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cakephp2 框架下的 ajax实现
阅读量:6429 次
发布时间:2019-06-23

本文共 2950 字,大约阅读时间需要 9 分钟。

目前框架cakePHP扎实用了1年多,这里说下本人常用的ajax 套路,自己当做一个模板。

 

目录 {

}

 

1 前端视图

echo $this->Form->create(false, array(    'url' => array(        'controller' => '表单控制器',        'action' => '表单action'    ),    'type' => 'post',    'id'=>'表单id'));echo $this->Form->input('field1') ;echo $this->Form->input('field2') ;echo $this->Form->input('field3') ;echo $this->Form->input('field4') ;echo $this->Form->end("发送");

 

2. 前端js

$("#表单id").submit(function(){    // 获取当前表单里的数据    var data = $(this).serialize();    // 获取表单的提交地址    var action = $(this).attr("action");    $.ajax({        data: data,        url: action,        type: "post",        cache: false,        dataType: "json",        beforeSend: function(){            // 通信开始前,弹出loading图标等操作        },        success: function (response) {            // console.log(response);            if (response.processResult === true) {                console.log("操作成功");                // 返回过来的数据                console.log(response.returnData);            }        },        error: function (e) {            console.log(e.status);            if (e.status === 403) {                console.log("被拒绝访问");            } else if (e.status >= 500) {                console.log("系统出错了");            } else if (e.status === 404) {                console.log("找不到地址");            }        },        complete: function () {            // 当通信完成后,删除loading图标 等操作        }    });    // 阻止表单默认的提交行为    return false;});

 

3. 后台PHP

public function ajaxAction() {        $this->log(__METHOD__ . "()开始", "info");        // =========================== 0 设置类型 ===============================        // 取消自动渲染        $this->autoRender = FALSE;        // 判断是不是ajax访问        if (!$this->request->is('ajax')) {            //            throw new BadRequestException ();        }        // 修改文档类型为json        $this->response->type('json');        // =========================== 1 参数准备===============================        // 获取请求数据        $data = $his->request->data;        // 获取需要处理的数据        $data['field1'] = $data['field1'];        $data['field2'] = $data['field2'];        $data['field3'] = $data['field3'];        $data['field4'] = $data['field4'];        // =========================== 2 执行业务操作===========================        // 保存数据        $queryResult = $this->模型->save($data);        // =========================== 3 返回数据(ajax)===========================        // 判断处理结果        if ($queryResult) {            $returnData = [                'processResult'=>true,                'message'=>"处理成功",                'returnData'=> $returnData            ];            $this->log(__METHOD__ . "()结束", "info");            return json_encode($result);        } else {            $returnData = [                'processResult'=>false,                'message'=>"出什么错了"            ];            $this->log(__METHOD__ . "()非正常结束", "info");            return json_encode($returnData);        }    }

 

转载于:https://www.cnblogs.com/dooun/p/9182532.html

你可能感兴趣的文章
sdl2.0示例
查看>>
数学 --- 高斯消元 POJ 1830
查看>>
Ejabberd源码解析前奏--集群
查看>>
[ZHUAN]Flask学习记录之Flask-SQLAlchemy
查看>>
【转】Install SmartGit via PPA in Ubuntu 13.10/13.04/12.04/Linux Mint
查看>>
PNG怎么转换成32位的BMP保持透明
查看>>
经验分享:CSS浮动(float,clear)通俗讲解
查看>>
WTL中最简单的实现窗口拖动的方法(转)
查看>>
数据结构—队列
查看>>
C. Adidas vs Adivon
查看>>
BZOJ4241 : 历史研究
查看>>
(LeetCode)两个队列来实现一个栈
查看>>
[WebGL入门]十九,遮挡剔除和深度測试
查看>>
jquery封装常用方法
查看>>
什么是ICE (Internet Communications Engine)
查看>>
移动web开发之屏幕三要素
查看>>
求按小时统计的语句,该怎么处理
查看>>
TRUNCATE,DORP,DELETE
查看>>
Chrome的开发必备小技巧
查看>>
can-i-win(好)
查看>>