CakePHP 2.0+:从Js->在控制器中提交表单中检索POST数据

时间:2012-06-20 15:00:12

标签: php cakephp post xmlhttprequest

我正在使用$ this-> Js->提交以异步方式将值传递给我的控制器而不是更新div(id = #upcoming)。不知怎的,我无法保存/检索传递给我的控制器的字段'test'的值。 Firebug告诉我正确的值被传递。我做错了什么?

查看文件(playlist.ctp):

echo $this->Form->create('Add', array('url' => array('controller' => 'Gods', 'action' => 'add')));
echo $this->Form->input('test');       
echo $this->Js->submit('Addddd', array(
'url' => array(
    'controller' => 'Gods',
    'action' => 'add'
),
'update' => '#upcoming'
));
echo $this->Form->end();

echo $this->Js->writeBuffer(array('inline' => 'true'));

控制器操作:

public function add()
{
$this->autoLayout = false;
   $this->layout = 'ajax';
$link = $this->request->data['Add']['test'];
$this->set('test',$link);
}

及其视图文件(add.ctp):

<?php
echo $test;
?>

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你在控制器方法中试过pr($ link)吗?或者,如果您愿意,只需将其发送到日志文件即可。这样你就可以看到是否收到了数据。

如果是这样,我认为由于

而没有返回任何内容
 $this->autoLayout = false;

没有这个就试试吧。它仍将调用ajax布局而不是默认布局。 否则你必须手动调用渲染函数

$this->render('add');

修改 如下面的评论中所述,请确保您的观点位于正确的位置。 (这将是与控制器关联的视图文件夹)