1

我正在使用 $this->Js->submit 将值异步传递给我的控制器,而不是更新 div (id = #upcoming)。不知何故,我无法保存/检索传递给我的控制器的字段“测试”的值。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;
?>

谢谢你的帮助!

4

1 回答 1

1

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

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

 $this->autoLayout = false;

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

$this->render('add');

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

于 2012-06-20T22:01:56.110 回答