2013-10-20 32 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