CakePHP 2.0+:从控制器中的 js->submit 表单中检索 POST 数据


CakePHP 2.0+: Retrieving POST data from Js->submit form in controller

我正在使用$this->Js->submit将值异步传递给我的控制器,然后更新div(id = #upcoming)。不知何故,我无法保存/检索传递给我的控制器的字段"test"的值。Firebug 告诉我传递了正确的值。我做错了什么?

查看文件(播放列表.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;
?>

感谢您的帮助!

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

如果是这样,我认为没有任何回报,因为

 $this->autoLayout = false;

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

$this->render('add');

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