2011-11-22 88 views
0
public function init() 
{ 
    $txt = $this->createElement('text', '0') 
      ->setBelongsTo('txt'); 
    $this->addElement($txt); 

    $fields = $this->createElement('text', '0') 
      ->setBelongsTo('fields'); 
    $this->addElement($fields); 
} 

但是在這種情況下,不顯示其中一個字段。如何使兩個字段的數組從0開始。 我可以離開txt []和字段[],但是當我做this->populate($_POST);時,它不起作用。Zend表格字段名稱爲數組

回答

1

總體而言有些問題。傳遞給元素的第二個參數必須是它的名稱,它必須是唯一的(表單字段名稱)。 setBelongsTo調用不起作用,因爲您的元素沒有相應的名稱。你正在做的是創建一個名稱爲0的元素,然後用另一個元素(它是顯示的元素)覆蓋它。你會看到這個,如果你在瀏覽器中看你的源代碼。如果你使用的是setIsArray那麼你應該讓這兩個元素屬於同一個數組。

我不知道究竟你想達到什麼,但它應該看起來更像是這樣的:

public function init() 
{ 
    $txt = $this->createElement('text', 'mytext') 
       ->setBelongsTo('myarray'); 

    $this->addElement($txt); 

    $fields = $this->createElement('text', 'myothertext') 
        ->setBelongsTo('myarray'); 

    $this->addElement($fields); 
} 
+0

的代碼將出現'輸出'我想要''input type =」text「name =」txt [0]「id =」txt-0「value =」「>' –

+0

use'createElement ('text','0')','createElement('text','1')' – Constantine