4

我的 Zend_Forms 有一个奇怪的问题:isValid()正确地指出我的表单无效,但我没有收到任何错误消息。怎么会这样?

这是代码,这里没什么特别的。$data是一个帖子数据数组。未发送文件时会出现此问题。

    $form = $this->getForm('Foto');
    if(!$form->isValid($data)) {
        var_dump( $form->getErrors() ); die;
        return false;
    }

getForm()如果尚未完成,则初始化表单。表格本身非常简单。

class Media_Forms_Foto extends Zend_Form
{
    /**
     * Initializer function. Setup forms fields.
     */
    public function init()
    {
        $this->setName('add Image');
        $this->setAction('media/gallery/addImage');

        $this->addElement('Hidden', 'gallery', array(
            'filters'    => array(),
            'validators' => array('Digits'),
            'required'   => false,
            'label'      => '',
        ));

        $this->addElement('File', 'foto', array(
            'required'      => true,
            'destination'   => ROOT_PATH .'public/upload/tmp/',
            'label'         => 'Foto',
            'validators'    => array(
                new Zend_Validate_File_IsImage(array(
                    'image/jpeg', 'image/gif', 'image/png'
                ))
            ),
            'maxFileSize'   => 2097152,
        ));

        $this->addElement('Submit', 'add', array(
            'required' => false,
            'ignore'   => true,
            'label'    => 'add Foto',
        ));

        $this->setAttrib('enctype', 'multipart/form-data');
    }
}

输出:

array(3) {
    ["gallery"]=>
        array(0) {
        }
    ["foto"]=>
        array(0) {
        }
    ["add"]=>
        array(0) {
        }
}
4

1 回答 1

-4

您是否有机会使用 jquery 表单插件?如果是这样,请尝试使用 iframe 模式上传文件:

var options = {
    url: '/test/upload',
    success: function(response) {
    },
    beforeSubmit: disableSubmitButtons,
    iframe: true,
    dataType : 'json'
};

$('#testForm').ajaxForm(options);
于 2013-04-22T14:00:25.407 回答