1

私はcakephpで簡単なajaxリクエストを送信しようとしています。多くのボタンに対してajaxリクエストを送信する必要があります。しかし、私は最初に単純なajaxリクエストを試しています。しかし、それは何らかの理由で機能していません。これは私がこれまでに行ったことです。これは私のコードです。

show.ctp

<?php echo $this->Html->script('jquery', FALSE); ?>

<?php

echo $this->Form->create();
echo $this->Form->input('field', array('id'=>'field'));
echo $this->Js->submit('Send', array(
'before'=>$this->Js->get('#sending')->effect('fadeIn'),
'success'=>$this->Js->get('#sending')->effect('fadeOut'),
'update'=>'#success'
));

?>

<div id='sending' style="display:none"> Counz[dot]gif will be displayed </div>
<div id='success'></div>

コントローラ

var $name = 'count';

    public $helpers = array('Js' => array('Jquery'));
    //var $helpers = array('Ajax', 'Javascript');
    var $components = array('RequestHandler');

public function show(){
        if($this->RequestHandler->isAjax()){
            $this->render('success', 'ajax'); //ajax tells the layout it should use

        }else{
            $this->set('for_map', $this->count->find('all'));

        }
    }

success.ctp

<p>It's working</p>

また、ajax.ctpがデフォルトであります。

私が間違っていることを教えてください。ありがとう。:)

4

2 に答える 2

0

ajax リクエストを行うときは、自分自身に投稿しない方がよいでしょう。

show.ctp

echo $this->Form->create('Count', array('action'=>'ajaxShow'));

コントローラ

public function ajaxShow(){

    $this->layout = 'ajax';


    if($this->RequestHandler->isAjax()){
         $this->render('success', 'ajax'); //ajax tells the layout it should use
    }
}
于 2013-03-06T13:36:11.490 に答える