cakephp2.x 一个ajax例子.md
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方法加载进来了。
cakephp2.x 一个ajax例子.md的更多相关文章
- 一个jquery ajax例子
上次搞了个jquery的AutoComplete效果,感觉很久没写jquery了,趁热打铁,再找点东西练练手.这不,看了一下jquery手册,顺便写了一个小例子,源码我直接贴上来了. 1.新建一个 ...
- Javascript:来一个AJAX封装函数
前不久换工作了,最近一直在出差,忙得跟狗一样,所以博客都荒废许久了. 最近的工作中涉及到大量的ajax操作,本来该后台做的事也要我来做了.而现在使用的ajax函数是一个后台人员封装的—-但他又是基于 ...
- 为大家分享一个 Ajax Loading —— spin.js
我们在做Ajax 异步请求的时候,一般都会利用一个动态的 Gif 小图片来制作一个Ajax Loading ,以便增加用户体验. 今天在网上发现了一个 Spin.js ,该 js 脚本压缩后5k,可以 ...
- 01-常见Dos命令、Java历史、Java跨平台、配置Path环境变量、第一个HelloWorld例子
常见Dos命令 dir: 列出当前目录下的文件以及文件夹 md: 创建目录 rd: 删除目录 cd: 进入指定目录 del: 删除文件 copy: 复制文件 xcopy: 复制目录 tree: 列出目 ...
- SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子
很早就知道SQL SERVER自带的报表工具SSRS,但一直没有用过,最近终于需要在工作中一展身手了,于是我特地按照自己的理解做了以下总结: 1. 安装软件结构 SSRS全称SQL Server Re ...
- Ajax例子,views返回,html接收数据
Ajax例子,views返回,html接收数据 views from django.shortcuts import render,HttpResponse,render_to_response im ...
- 写一个ajax程序就是如此简单
写一个ajax程序就是如此简单 ajax介绍: 1:AJAX全称为Asynchronous JavaScript and XML(异步JavaScript和XML),指一种创建交互式网页应用的网页开发 ...
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
- 为大家分享一个 Ajax Loading —— spin.js(转)
原文地址:http://www.cnblogs.com/lxblog/p/3425599.html 我们在做Ajax 异步请求的时候,一般都会利用一个动态的 Gif 小图片来制作一个Ajax Load ...
随机推荐
- Ajax向Controller发送请求并接受数据需要注意的一个细节
想用Ajax想向Controller发送请求和接收返回的字符等等.Controller中要使用@ResponseBody注解. <script type="text/javascrip ...
- 阿里巴巴连接池Druid简单使用
Druid参考:https://github.com/alibaba/druid 偶尔的机会解释Druid连接池,后起之秀,但是评价不错,另外由于是阿里淘宝使用过的所以还是蛮看好的. Druid集连接 ...
- Netty问题小结
1.问题:高并发时连接不够:java.net.SocketException: No buffer space available (maximum connections reached?): co ...
- 「Newcoder练习赛40D」小A与最大子段和
题目 挺好的一道题 我们考虑把\(i\)作为选取的最大子段的结束位置,我们如何往前计算贡献呢 考虑一下这个乘上其在队列中的位置可以表示为这个数被算了多少次,而我们往前扩展一位当前已经被扩展的就会被计算 ...
- springmvc(3)注解
有疑问可以参考博主其他关于spring mvc的博文 此时直接进行代码的实现 一般的步骤: -加入jar包 -配置DispatcherServlet -加入Spring MVC配置文件 -编写请求的处 ...
- 为什么机器能够学习——PAC Learnability
机器学习中,我们根据训练集训练一个模型,来对测试数据进行预测.通常我们并不关心模型在训练集上的好坏(即训练误差,in sample error),举个简单例子,我们想要根据前六个月股市行情训练一个模型 ...
- 【Node.Js】npm国内被墙的解决方法
移动网就是坑,有VPN也上不去,真操蛋~先吐槽一下@中国移动 折腾了一晚上,总是报连接错误,导致我npm安装不上,查了半天资料,找到个靠谱的,粘贴过来备用. 原文地址:http://snoopyxdy ...
- ejs模版实现递归树形结构渲染
使用过前端模板的同学们,尤其是使用过nodejs写后台服务的同学们,应该对ejs模板和jade模板都不陌生.对与ejs模板和jade模板孰强孰弱,载各大论坛中一直争论不休,有说ejs更直观的,也有说j ...
- HTML5前端性能优化——浏览器兼容与前端性能优化
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
- 提示AttributeError: 'module' object has no attribute 'HTTPSHandler'解决方法
今天在新机器上安装sqlmap,运行提示AttributeError: 'module' object has no attribute 'HTTPSHandler' 网上找了找资料,发现一篇文章ht ...