表单元素中填充的attrib不会传递其值

时间:2012-06-13 03:04:52

标签: zend-framework zend-form

我正在创建一个表单文本字段,但是想设置一个名为additional的附加属性,以便html标记看起来像这样。

<dd id="email-element">
   <input type="text" value="" id="email" name="email" additional="">
</dd>

我可以像setAttrib那样设置属性。

$email = new Zend_Form_Element_Text('email');
$email->setAttrib('additional', '');
$this->addElement($email);

然后我通过ajax在客户端设置additional的值。但是在提交表单时,additional显示为空。当我var_dump表单时,我可以将其视为此表单字段的属性,但它是空的。此外,当我var_dump请求时,它不在它上面(这是可以理解的,因为它是一个属性,而不是字段值本身)。有没有办法读取客户端更改的属性?

1 个答案:

答案 0 :(得分:0)

PHP无法读取在浏览器中修改的表单属性,但您可以在客户端读取它并将其发送回PHP。提交的唯一数据是元素值本身。

如果你需要PHP中的属性,添加一个名为additional的隐藏输入(或任何你喜欢的),并在表单的onsubmit事件中,你可以读取属性的值,并填充隐藏元素然后提交表单。请注意,如果客户端禁用了Javascript,则该值将无法通过,但该方法可用于读取它并将其发送到服务器。

希望有所帮助。