Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-06-2012 15:08:33

Mehrez1985
Membre
Date d'inscription: 25-03-2012
Messages: 10

problème avec Uploadify

salut j'ai un problème avec l'utilisation de upladify pour faire un upload avec ajax. En faite tout marche bien sauf que je veut faire un tester la validité du formulaire avec isValid pour récupérer les id des champs invalides et les messages d'erreurs. là lorsque je fait la soumission du formulaire en remplissant tout les champs du formulaire le résultat de isValid est FALSE. Le problème est surement due au champs file mais je trouve pas de solution surtout qu'il y'a aucun message d'erreur au retour !!!

et voici le code :  =>view :



jQuery(document).ready(function(){
           
       
       
           $('#file_upload').uploadify({
                'swf'      :'/assets/flash/uploadify.swf',
                'uploader' : '/dentiste/dentiste/publishimage',
                'folder':'/upload/images',
                'onUploadComplete' : function(file) {
                var file_name =  file.name;
                var name = jQuery("#publierimageForm").find("#name");
                name.val(file_name);
                },
                'multi'    : false,
                'auto':true
               

                // Put your options here
            });
     
     
          jQuery("#publierimageForm").submit(function(){
               
               jQuery.ajax({
                    url : jQuery(this).attr("action"),
                    type : 'POST',
                    data : jQuery(this).serialize(),
                    success : function(res){
                            res = jQuery.parseJSON(res);
                            _countMessages = res.messages.length ;
                           jQuery("#publierimageForm input, #publierimageForm textarea").removeClass("redborder");
                            if(_countMessages > 0){
                                    _i = 0 ;
                                    for(_i = 0 ; _i < _countMessages ; _i++ ){
                                            jQuery( "#publierimageForm  #"+res.messages[_i]).addClass("redborder");
                                            if(res.messages[_i] =="name")
                                                {
                                                    jQuery(".uploadify-button ").css('border','red 1px solid');
                                                }
                                               
                                    }
                            }
                            console.log(res);
                    }
            });
         
               return false; 
            });
           
       });
     

   
</script>   


<?php echo $this->publierimageForm?>


=>controlleur :


$this->_helper->layout()->disableLayout();

        $_publierimageForm = new Dentiste_Form_PublierImageForm();
        $_requestAction = array("valid"=>false,"messages"=>array());
       
        $this->view->publierimageForm = $_publierimageForm;
       
        $targetFolder = '/upload/images';
        $fileTypes = array('jpg','jpeg','gif','png');
       
        $upload = new Application_Plugin_UploadAjax();
        $upload->upload($targetFolder,$fileTypes);
       
        if($this->_request->getPost())
        {
           
            $this->_helper->layout()->disableLayout();
            $this->_helper->viewRenderer->setNoRender(true);
           
            $_data = $this->_request->getPost();
           
           
           
            if($_publierimageForm->isValid($_data))
            {
                $_requestAction['valid'] = TRUE ;
               
                $name = $_data['name'];
                $text =   $_data['text'];
                $title =   $_data['title'];
                $_requestAction['data'] = $_data ;
               
                $type = 2;
                $auth = Zend_Auth::getInstance();
                $auth->setStorage(new Zend_Auth_Storage_Session('dentiste'));
                $dentiste_id = $auth->getIdentity()->id;
                $state = 1;
                $date = new Zend_Date();
                $created = $date->get();
               
                $_publications = new Dentiste_Model_DbTable_Publications;
                $id_pub = $_publications->ajouter_publicationImage($dentiste_id, $type, $title, $text, $name, $state, $created);
               
                if ($id_pub == NULL)
                {
                    $_requestAction['succes'] = FALSE;
                }
                else
                {
                    $_requestAction['succes'] = TRUE;
                }   
               
            }
            else
            {
                $_requestAction['valid'] = FALSE ;
                $_messages = $_publierimageForm->getMessages();
                foreach($_messages as $_key=>$_val)
                    {
                $_requestAction['messages'][] = $_key ;
                    }
            }
            echo Zend_Json::encode($_requestAction);
        }

merci pour votre aide smile

Hors ligne

 

#2 01-07-2012 09:08:30

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: problème avec Uploadify

Bonjour,

As-tu ajouté l'attribut enctype="multipart/form-data" à ton formulaire?
Pour traiter un upload, ton formulaire doit avoir cet attribut.

Si oui, pourrais-tu alors publier le code ton formulaire Dentiste_Form_PublierImageForm ?

Dernière modification par delorbe (01-07-2012 09:12:31)

Hors ligne

 

#3 03-07-2012 18:25:07

Mehrez1985
Membre
Date d'inscription: 25-03-2012
Messages: 10

Re: problème avec Uploadify

oui j'ai mis enctype="multipart/form-data" pour le formulaire et voici le code :

class Dentiste_Form_PublierImageForm extends Zend_Form
{
    public function init()
    {
   
        $_translate = Zend_Registry::get("_translate");
                $_valid_NotEmpty = new Zend_Validate_NotEmpty();
               
        $_title = new Zend_Form_Element_Text('title');
        $_title->setRequired(true)
                ->addFilter("StripTags")
                        ->addFilter("StringTrim")
                        ->addValidator($_valid_NotEmpty )
                        ->setLabel($_translate->translate('titre'));
                
        $_text = new Zend_Form_Element_Textarea('text');
        $_text->setRequired(true)
                ->addFilter("StripTags")
                        ->addFilter("StringTrim")
                        ->setLabel($_translate->translate('textrelatif'))
                        ->addValidator($_valid_NotEmpty )
                        ->setAttrib('class','textarea');        
                
                $_Upload = new Zend_Form_Element_File('file_upload');
        $_Upload->setLabel($_translate->translate('uploadfichier'))
                ->setDestination('C:/zendprojects/portail-dentaire/public/upload/images')
                ->setAttrib('class','file')
                        ->setAttrib('id','file_upload')
                        ->setRequired(false)
                        ->addErrorMessage('Please upload a valid File  (jpg,png,gif,jpeg)');;
               
                $name = new Zend_Form_Element_Hidden ( 'name' );
                $name ->addValidator($_valid_NotEmpty )
                      ->setRequired(true);
               
        $_submit = new Zend_Form_Element_Submit('submit');
        $_submit->setAttrib('id', 'submitbutton')
                ->setAttrib('class','submit')
                ->setLabel('Publier')
                        ->setRequired(false);
                
        $this->addElements(array($_title,$_text,$_Upload,$name, $_submit));
        $this->setAction('/dentiste/dentiste/publishimage');   
           $this->setAttrib("id","publierimageForm");    
           $this->setAttrib("method","post");
                $this->setAttrib('name','publicationImage');
           $this->setAttrib('accept-charset', 'utf-8');
           $this->setAttrib('enctype', 'multipart/form-data');       
       
    }
}

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages