Write hyperlink inside the Zend Form?

爷,独闯天下 提交于 2020-01-10 08:53:54

问题


I am using Zend-Framework in my project. I made a login form using the Zend Form that contains the User Id and Passwords fields with a submit button. Everything is working fine in the login form.

How do I add two hyperlinks inside the login form that is one for the Sign-Up and other for the Forget Password?


回答1:


I've faced the same problem before, and solved it by creating a custom Zend_Form_Element_Html, as follows:

class Zend_Form_Element_Html extends Zend_Form_Element_Xhtml {
    /**
     * Default form view helper to use for rendering
     * @var string
     */
    public $helper = 'formNote';

    public function isValid($value, $context = null) {
        return true;
    }
}

So, in your form you just have to do the following:

$tag = new Zend_Form_Element_Html('forgetPassword');
$tag->setValue('<a href="/forgotten-pwd">Forgotten your password?</a>');
$this->addElement($tag);

Hope this helps!




回答2:


In your viewscript file where you print the form, e.g. login.phtml

echo $this->form;

you can specify any other html markup, e.g. links

echo "<p><a href='".$this->url ( array ('controller' => 'authentication',
                                        'action' => 'lostPW' ) )."'>
      Lost pw </a></p>";

So you actually do not write it in the form itself but in the view script where you echo the form.




回答3:


Try this:

$passwordElement->setDescription('<a href="">Forgot password?</a>');
$passwordElement->getDecorator('Description')->setOption('escape', false);

Description decorator will add this text beside your field.




回答4:


You can use Zend_Form_Decorator_ViewScript

Or, create a custom Zend_Form_Element to render HTML elements or ViewScript.




回答5:


For only decorators use directly in the form try:

        $this->addElement(new Zend_Form_Element_Note(array(
            'name' => 'forgotten',
            'value' => __('Forgot your password?'),
            'decorators' => array(
                array('ViewHelper'),
                array('HtmlTag', array(
                    'tag' => 'a',
                    'href' => $this->getView()->url(array(
                        'remind'
                    ))
                )),

            )
        )), 'forgotten');


来源:https://stackoverflow.com/questions/5882797/write-hyperlink-inside-the-zend-form

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!