【问题标题】:cakephp-2.0 simplest ajax link with jshelpercakephp-2.0 最简单的ajax链接和jshelper
【发布时间】:2012-03-29 21:30:24
【问题描述】:

我想创建 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 页面以显示消息。

非常感谢任何帮助!

【问题讨论】:

  • 听起来像是 javascript 错误......

标签: php cakephp cakephp-2.0 cakephp-helper


【解决方案1】:

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

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

我在布局文件夹中的 default.ctp 末尾使用它

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      所以,总的代码看起来像这样 - 它适用于我(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 及更高版本的工作原理:)

      【讨论】:

        【解决方案4】:

        试试$this-&gt;autoRender = FALSE;

        【讨论】:

          【解决方案5】:

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

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

          某处 - 例如在$this-&gt;Js-&gt;link 呼叫下方。

          希望有帮助!

          【讨论】:

            【解决方案6】:

            我只是把这个:

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

            它对我有用,希望我对你有用

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-01-31
              • 1970-01-01
              • 2012-03-27
              • 1970-01-01
              相关资源
              最近更新 更多