2013-10-20 44 views
0

我add.ctp没有得到动态添加输入字段CakePHP的

<input name="data[Language][0][name]" type="text" maxlength="50" id="Language0Language"> 

,我增加了一个现场动态使用jQuery从add.ctp 像

<input name="data[Language][1][name]" type="text" maxlength="50" id="Language1Language"> 
<input name="data[Language][2][name]" type="text" maxlength="50" id="Language2Language"> 

当调试:

debug($this->data); 
Array 
(
    [0] => Array 
     (
      [language] => english 
      [speak] => 1 
      [wright] => 1 
      [read] => 0 
     ) 

) 

新添加的字段没有显示在列表中!
在此先感谢,

+0

尝试禁用安全组件并查看它是否有效。 –

+0

在调试中显示'data [Language] [0] [name]'吗?在'print_r($ _ POST)'中呢? Cake可以使用表单元素做一些奇怪的事情,而不是使用表单助手添加的表单元素,并且经常可以归结为某处的语法错误 –

+0

我试过安全组件被禁用仍然无法工作..(调试结果更新) – Jake

回答

1

这是因为,安全组件将验证POST数据。它将删除所有动态字段。因此,要允许动态字段,请在相应控制器的beforeFilter()中添加以下行。

function beforeFilter() { 
     parent::beforeFilter(); 
     $this->Security->validatePost=false; 
    } 
+0

仍然是同样的问题print_r $ _post也可以) – Jake

+0

您是否可以通过查看chrome中的“请求标题”来检查是否所有字段都已发布? – nithin

+0

也不会在请求标题中显示..(动态添加的字段..!)。我使用cakephp 1.3 – Jake