4

Cakephp2.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ページに移動してメッセージを表示します。

どんな助けでも大歓迎です!

4

6 に答える 6

6

デフォルトでは、スクリプトはキャッシュされ、キャッシュを明示的に出力する必要があります。各ページの最後でこれを行うには、終了タグの直前に次の行を含めます。

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

レイアウトフォルダのdefault.ctpの最後でこれを使用しています

于 2012-12-20T08:37:30.520 に答える
1

コントローラで$components= array('RequestHandler')を設定してください

于 2012-03-30T12:32:26.707 に答える
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以降でどのように機能するかを理解するのに役立ちました:)

于 2013-01-06T10:18:36.167 に答える
0

試す$this->autoRender = FALSE;

于 2012-03-30T07:33:37.520 に答える
0

私はあなたがこれを置く必要があるかもしれないと思います:

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

どこか-たとえば、$this->Js->link通話のすぐ下。

お役に立てば幸いです。

于 2012-04-10T21:34:48.097 に答える
0

私はこれを置きます:

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

それは私のために働きます、私があなたのためになることを願っています

于 2013-08-01T10:29:26.097 に答える