2011-11-22 87 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