Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework zend framework-隐藏元素即使在指定它时也没有值_Zend Framework_Element_Hidden - Fatal编程技术网

Zend framework zend framework-隐藏元素即使在指定它时也没有值

Zend framework zend framework-隐藏元素即使在指定它时也没有值,zend-framework,element,hidden,Zend Framework,Element,Hidden,我这样创建一个隐藏元素: $this->addElement('hidden', 'id', '1'); 但我得到的是: <input type="hidden" name="id" value="" id="id" /> 但效果并不好 有什么问题吗?可能在渲染之前,您执行了$form->setValue()并且参数id为null。它对我(zf 1.1)使用int或字符串有效,但是您是否尝试过将值作为字符串传递 $this->addElement('hidden','id'

我这样创建一个隐藏元素:

$this->addElement('hidden', 'id', '1');
但我得到的是:

<input type="hidden" name="id" value="" id="id" />
但效果并不好


有什么问题吗?

可能在渲染之前,您执行了
$form->setValue()
并且参数id为null。

它对我(zf 1.1)使用int或字符串有效,但是您是否尝试过将值作为字符串传递

$this->addElement('hidden','id',array('value'=>'1'))
您可能正在使用

$form->populate($someData);


在代码中的某个地方;)

您可以使用Zend_Form的setValue方法

试着这样做:

$this->addElement('hidden', 'id', array(
    'value' => 1
));
$this->getElement('your-name')->setValue(1);

你试过设置默认值吗

$this->addElement( 'hidden', 'id', array(
    'default' => 1
) );

我想你必须把你的表格放在课堂上:

public function populate(array $values) {
    parent::populate($values);
    $this->addElement('hidden', 'hidden');
    $el = $this->getElement('hidden');
    $el->setValue(1);

}
答案很简单:

//$form <- is your zend form element;
$form->get('element_name')->setValue(1);
/$form get('element_name')->setValue(1);
为我工作!:)


正如我之前所说的:确保没有表单元素设置器(populate、setValues等)

在我使用这个问题之后(在form类中)

利用

$form->hiddenElement->getAttrib('xxx');

这可能不是一个最佳的解决方案,但它对我有效。

您的第二个示例应该有效,因为我看不出它有任何问题。所以原因不是这段代码。您必须在代码中的某个地方执行导致问题的操作。没有更多的信息,很难说是什么问题。谢谢大家的回答。我发现问题确实是由isValid问题引起的。否。我没有$form->setValue()。我检查过了,这个方法根本不存在。@ndefontenay那么你的第二个例子是对的。没有代码很难说点什么。谢谢。我开始四处寻找其他方法,确实存在这样的问题。是的。isValid倾向于清除表单,而定制的填充方法可能会很好地破坏表单defaults@softwareplaysetVlue()不退出,请参阅文档:
$hidden = $this->createElement('hidden','hiddenElement');
$hidden->setAttrib('xxx','my value');
$this->addElement($hidden);
$form->hiddenElement->getAttrib('xxx');