在Cakephp中单击复选框时发送Ajax调用

时间:2014-05-24 06:14:17

标签: ajax cakephp checkbox event-handling

我正在使用CakePHP 2.3.6。在页面中,我有一个复选框。我想,当我选中复选框(点击它)时,ajax post请求将被发送到页面,一些数据将保存在db中,之后会出现成功的通知。当我取消选择它(再次点击它)时,ajax post请求将再次发送到该页面,一些数据将保存在db中,之后将显示成功的通知。所以,我的视图文件是这样的:

.
.
.
<form>
    <label><input type="checkbox" class="item_id" />Save the data</label>
</form>
.
.
.
<?php $this->Js->get('.item_id')->event('onclick',$this->Js->request(array('controller'=>'items','action'=>'saveData',$item['Item']['id'],$another_id),array('async'=>true)));?>

saveData()函数中:

if($this->request->is('post')){
   //save the data in the db
}

但是,当我点击复选框时,没有任何反应。 我在特定视图文件的末尾放置了用于ajax调用的php代码,而不是default布局。而且,当我从浏览器中看到页面的源代码时(&#34;查看源代码&#34;选项),我没有看到任何应该由CakePHP生成的jQuery代码。

有什么问题?我该怎么办?我需要在我的数据库中保存一些数据并显示一些通知。

感谢。

1 个答案:

答案 0 :(得分:0)

您是否已将Js助手包含在控制器中,如

public $helpers = array('Js' => array('Jquery'));

用你的javascript文件替换jquery。

还尝试在结束标记之前包含此行:

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

打印缓存。