Zend_form: для чего добавлен "enctype"? - PullRequest
0 голосов
/ 11 октября 2010

Zend добавляет энктип ко всем формам.Для чего это хорошо?и как я могу удалить это?

<form action="" 
      method="post" 
      enctype="application/x-www-form-urlencoded" 
      id="myform">

</form>

Ответы [ 4 ]

7 голосов
/ 11 октября 2010

enctype="application/x-www-form-urlencoded" является формальным требованием метода POST. http://www.w3.org/TR/html401/interact/forms.html

4 голосов
/ 11 октября 2010

Это невозможно без исправления класса Zend_Form или его наследования и переопределения getEnctype()

http://framework.zend.com/svn/framework/standard/tags/release-1.10.8/library/Zend/Form.php

Посмотрите на метод getEnctype().

1 голос
/ 11 октября 2010

Если вы хотите удалить его, вы должны переопределить метод getOptions Zend_Form_Decorator_Form и удалить две строки ниже:

class Zend_Form_Decorator_Form extends Zend_Form_Decorator_Abstract
{

    [..]

    public function getOptions()
    {
        if (null !== ($element = $this->getElement())) {
            if ($element instanceof Zend_Form) {
                [..]
                // To remove
                if ($method == Zend_Form::METHOD_POST) {
                    $this->setOption('enctype', 'application/x-www-form-urlencoded');
                }
                [..]
0 голосов
/ 11 октября 2010

Это атрибут, используемый для определения того, какую форму вы пытаетесь отправить на сервер. В этом случае говорится, что вы отправляете текстовую информацию. Если вы хотите отправить файлы, например, Более сложным является использование значения enctype «multipart / form-data». См. http://www.w3.org/TR/html401/interact/forms.html#adef-enctype для получения дополнительной информации.

...