cakephp-2.0最简单的ajax链接与jshelper

时间:2012-03-29 21:30:25

标签: php cakephp cakephp-2.0 cakephp-helper

我想在Cakephp 2.0中创建最基本的ajax链接。

index.ctp 我有

 <?php
echo $this->Js->link('myLink', array('controller'=>'technologies', 'action'=>'view'), array('update'=>'#success'));
?>
 <div id="success"></div>
TechnologiesController.php 中的

public function view(){
    $this->set('msg', 'message');
    $this->render('view', 'ajax'); 
}

并在 view.ctp 我有

<?php echo $msg;?>

不是在成功div中设置视图,而是导航到http://local.cake.com/technologies/view页面以显示消息。

非常感谢任何帮助!

6 个答案:

答案 0 :(得分:6)

默认情况下,脚本会被缓存,您必须明确打印出缓存。要在每个页面的末尾执行此操作,请在结束标记之前包含此行:

echo $this->Js->writeBuffer(); // Write cached scripts

我在Layouts文件夹的default.ctp末尾使用它

答案 1 :(得分:1)

请务必在控制器中设置$ components = array('RequestHandler')

答案 2 :(得分:1)

所以,总的来说代码看起来像这样 - 它对我有用(CakePHP 2.2.4):

index.ctp:

<?php
echo $this->Js->link('myLink', array('controller'=>'technologies', 'action'=>'view'), array('update'=>'#success'));
?>

<div id="success"></div>

echo $this->Js->writeBuffer();

非常感谢,这有助于我理解2.0及以上版本的工作原理:)

答案 3 :(得分:0)

尝试$this->autoRender = FALSE;

答案 4 :(得分:0)

我想你可能不得不这样说:

echo $this->Js->writeBuffer();

某处 - 例如在$this->Js->link电话正下方。

希望有所帮助!

答案 5 :(得分:0)

我刚才这样说:

echo $this->Js->writeBuffer();

它对我有用,希望我能为你服务