文档章节

cakephp2.x 一个ajax例子.md

SnowFlake
 SnowFlake
发布于 2016/06/20 16:14
字数 613
阅读 4
收藏 0

CakePHP中的ajax还是比较简单,但要注意一些细节。

app/View/Layouts下新建ajaxtest.ctp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CakePHP AJAX Demo :: <?php echo $title_for_layout?></title>
<?php echo $this->Html->charset(); ?>
<?php echo $this->Html->script('jquery-1.9.1.min');    ?>
</head>
<body>
<div id="container">
    <center><h2>CakePHP AJAX Demo</h2></center>
    <div id="content"><?php echo $content_for_layout?></div>
    <?php 
        $options = array(
            'inline'=>true,
            'cache'=>false,
            'safe' =>false
        );
        echo $this->Js->writeBuffer($options);
    ?> 
</div>
</body>
</html>

要注意一定要带上 echo $this->Js->writeBuffer($options); 即输出js。

有关writeBuffer(),自己从官方文档翻译的

php:method:: writeBuffer($options = array())

将所有产生的Javascript写入到代码块中或缓存在文件中,并返回一个带链接的脚本

**选项**

- ``inline`` - (默认为真)若为真,直接在页面内输出缓存内容,若``cache``同样为真,将只产生一个带地址的script标签
- ``cache`` - (默认为假)若为真,将缓存内容保存到一个独立的js文件中,并被页面引用(译者:建议缓存内容过多时使用)
- ``clear`` - (默认为真)若为假,将阻止缓存内容被清除
- ``onDomReady`` - (默认为真)若为真,将缓存内容放到domready事件中(译者:即脚本被自动包含在$(document).ready(function ())中)
- ``safe`` - (默认为真)若为真,页面内的缓存内容被<![CDATA[ ... ]]>语句块包裹

独立出来的js缓存文件在``webroot/js``,要保证该目录可写,并且保证浏览器可以生成任何页面的脚本资源缓存

 

app/Controller/Layouts下新建AjaxtestController.php

<?php
class AjaxtestController extends AppController {
    var $layout  = 'ajaxtest';   //指定视图使用的布局为 ajaxtest
    var $helpers = array('Html','Js'); //需要用到的视图辅助类

    function index(){
    }

    function hello(){
        sleep(1);               //本地测试时,为了更好地看到效果,模拟延迟状态
        $this->layout = 'ajax'; //此方法为 AJAX 动作,所以布局需要使用 hello.ctp     
    }
}

app/View/下先新建Ajaxtest目录并新建index.ctp

<div id="loading" style="display:none;padding:4px;color:black;
    background-color:#FAD163;width:100px"><strong>Loading...</strong></div>
<div id="view" style="display:none;background-color:#E8EEF7;
    padding:4px;border:1px solid silver;width:300px"></div>
<?php  
    //设置 AJAX 选项
    $options = array(
        'update'   => '#view',
        'beforeSend'  => "$('#view').hide();$('#loading').show();",
        'complete' => "$('#loading').hide();$('#view').show();"
    );
    //使用 AjaxHelper 创建 AJAX 动作链接
    echo $this->Js->link('Click here!', '/ajaxtest/hello', $options);
?>

再新建一个hello.ctp,ajax加载的内容

<center>Hello, AJAX world!</center>

运行http://localhost/Mycakephp/ajaxtest ,效果是有个超链接文字是'Click here!',但点击链接,内容即hello.ctp通过ajax方法加载进来了。

本文转载自:http://www.cnblogs.com/mafeifan/p/3170603.html

SnowFlake
粉丝 9
博文 171
码字总数 0
作品 0
郑州
程序员
私信 提问
HBuilder 入门(5) 编写一个登录页面 - Ajax交互

使用AJAX方式,页面不会因为刷新而现实大白页。 交互这部分可以分成两个部分:服务器端和客户端。 服务端以Java语言为例子(因为我只做过Java的)。其实 c#或者php等语言实现起来也都是基本一...

chenzl0723
2017/12/13
0
0
Ajax 框架--Clean AJAX

Clean 是一个开源的 Ajax 引擎,提供高级别应用接口来使用 Ajax 技术。 Easy to use AJAX framework that provides message queue, XSLT, XPath, encryption (SHA1, MD5), web service acces......

匿名
2009/02/24
1K
0
Nutch 组件扩展--nutch-ajax

Nutch AJAX page Fetch, Parse, Index Plugin 项目简介 基于Apache Nutch 2.3 和 Htmlunit, Selenium WebDriver 等组件扩展,实现对于 AJAX 加载类型页面的完整页面内容抓取,以及特定数据项...

xautlx
2015/02/26
3K
0
spring mvc 表单提交时存在实体属性问题。

spring mvc 表单提交时存在实体属性问题。 商品Goods的表单中包涵一个所属品牌Brand的信息 ------Entity------------------------------ public class Goods extends IdEntity { /** * 商品所...

岽茗
2015/12/08
1K
9
Apache Shiro权限控制实战,权限控制SpringMVC + Mybatis + Shiro

Demo已经部署到线上,地址是http://shiro.itboy.net, 管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。 PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是...

8446666
2016/06/29
10.3K
3

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部