我正在创建一个表单文本字段,但是想设置一个名为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请求时,它不在它上面(这是可以理解的,因为它是一个属性,而不是字段值本身)。有没有办法读取客户端更改的属性?
答案 0 :(得分:0)
PHP无法读取在浏览器中修改的表单属性,但您可以在客户端读取它并将其发送回PHP。提交的唯一数据是元素值本身。
如果你需要PHP中的属性,添加一个名为additional
的隐藏输入(或任何你喜欢的),并在表单的onsubmit
事件中,你可以读取属性的值,并填充隐藏元素然后提交表单。请注意,如果客户端禁用了Javascript,则该值将无法通过,但该方法可用于读取它并将其发送到服务器。
希望有所帮助。