在控制器中捕获数据

时间:2014-10-17 18:01:13

标签: javascript php ajax cakephp

我有一个关于javascript和cakephp的问题,我需要通过Post发送数据并在另一侧(控制器)重新接收它并进行我已经拥有的正常过程。但我不知道如何捕获数据。我正在使用Ajax



function editFun(clicked_id){
    var id = clicked_id;
    $("#Content").empty();
    $('#Content').html("<b>Loading response...</b>");
    $.ajax({
        type: 'POST',
        url: '/Posts/edit',
        data: (id)
    })
    .done(function(data){
        console.log(data);
        $('#Content').html(data);
    })
    .fail(function(data){
        $('#Content').html(data);
    });
}
&#13;
public function edit($id = null) {
				if (!$id) {
					throw new NotFoundException(__('Invalid post'));
				}
				$post = $this->Post->findById($id);
				if (!$post) {
					throw new NotFoundException(__('Invalid post'));
				}
				if ($this->request->is(array('post', 'put'))) {
					$this->Post->id = $id;
					if ($this->Post->save($this->request->data)) {
						$this->Session->setFlash(__('Your post has been updated.'));
						return $this->redirect(array('action' => 'index'));
					}
					$this->Session->setFlash(__('Unable to update your post.'));
				}
				if (!$this->request->data) {
					$this->request->data = $post;
				}
			}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

在这种情况下,您应该在URL中发送您的ID。所以即使GET方法也足够了,因为你的控制器从URL接收$id param。

所以你需要改变的是发布参数:

$.ajax({
    type: 'POST',
    url: '/Posts/edit/' + id
})