Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-01-2011 22:50:02

Paul75
Membre
Lieu: Paris
Date d'inscription: 23-12-2010
Messages: 101

Problème accents dans un formulaire (modification)

Bonjour,

Dans le contrôleur :

Code:

    public function modifactuAction()
    {
        $this->view->titre = 'Modification d\'une actualité';

        $params = $this->getRequest()->getParams();

        $isUpdate = isset($params['a']);

        $params['a'] = (int)$params['a'];

        $valuesData = $this->_actuTable->find($params['a'])->current()->toArray();

        $dateT = new Zend_Date();
        $dateT->set($valuesData['date'], 'YYYY-MM-DD', 'fr_FR');

        $valuesData['date'] = $dateT->toString('d-MM-YYYY');

        $formActu = new DDI_Form_Actualites();
        $formActu->setDefaults($valuesData)
                ->setAction($this->view->link('index' , 'modifactu', null, '', 'default', !$isUpdate))
                ->submit->setLabel("Modifier");



        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($formActu->isValid( $formData )) {
                $valuesData = $formActu->getValues();

                if(isset($valuesData['image'])) {
                    Zend_Debug::dump("FICHIER ENVOYE");
                }
                else {
                    Zend_Debug::dump("PAS DE FICHIER");
                }

                //$this->_actuTable->setFromArray(array_intersect_key($formData, $valuesData));
                //$this->_actuTable->save();
            }
        }

        $this->view->form = $formActu;
    }

Mon problème est que lorsque j'affiche une ligne, mettons dans le titre, s'il possède un accent, il n'affiche rien dans le formulaire...
Par contre si dans le titre, il y a aucun accents, cela passe....


Dans ma configuration :

Code:

resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password =
resources.db.params.dbname = site2
resources.db.params.charset = "utf8"

J'ai fait exactement la même chose que dans le livre zfbook (que j'ai refais à ma manière)....

Quelqu'un peux aller m'aider ?

Merci

EDIT : cela se produit sur un champs uniquement.....

Voilà le form :

Code:

    public function init()
    {
        $this->setName('formactualite');

        $this->setAttrib("style", "width:80%");
        $this->setAttrib('enctype', 'multipart/form-data');

        $decorators = array(
            'ViewHelper',
            'Errors',
            array('Description', array('tag' => 'p', 'class' => 'description')),
            array('HtmlTag', array('tag' => 'td', 'align' => 'left')),
            array('Label', array('tag' => 'th')),
            array(array('tr' => 'HtmlTag'), array('tag' => 'tr'))
        );

        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');

        //Date
        $dateAff = date('d-m-Y');

        $date = new Zend_Form_Element_Text('date');
        $date->setLabel('Date')
                ->setValue($dateAff)
                ->setRequired(true)
                ->setAttrib('id', 'date')
                ->setAttrib('readonly', 'true')
                ->addDecorators($decorators);

        $usageValidators = array(new Zend_Validate_StringLength(0, 100));
        $titre = new Zend_Form_Element_Text('titre');
        $titre->addFilters(array('StringTrim', 'StringToLower'))
                ->addValidators($usageValidators)
                ->setRequired(true)
                ->setLabel("Titre")
                ->setAttrib("id", "titre")
                ->addDecorators($decorators);


        $texte = new Zend_Form_Element_Textarea('texte');
        $texte->setLabel('Texte')
                ->setRequired(true)
                ->setAttrib('id', 'texte')
                ->addDecorators($decorators);


        $image = new Zend_Form_Element_File('image');
        $image->setLabel('Image')
                ->addValidator('Size', false, '10MB')
                ->addValidator('Extension', false,'jpg,png,gif')
                ->setDecorators(
                        array('File', 'Description', 'Errors',
                            array(array('data'=>'HtmlTag'), array('tag' => 'td')),
                            array('Label', array('tag' => 'th')),
                            array(array('row'=>'HtmlTag'),array('tag'=>'tr'))
                        )
                    )
                ->setAttrib('id', 'image')
                ->setDestination(PUBLIC_PATH.'/accueil/actualites/');

        $usageValidators = array(new Zend_Validate_StringLength(0, 25));
        $legende = new Zend_Form_Element_Text('legende');
        $legende->setLabel('Légende')
                ->addValidators($usageValidators)
                ->addDecorators($decorators);

        $zoom = new Zend_Form_Element_Radio('zoom', array('separator' => ' - '));
        $zoom->setLabel('Zoom')
                ->addDecorators($decorators)
                ->setMultiOptions(array('1' => ' Oui', '0' => ' Non'))
                ->setValue('0');


        $submit = new Zend_Form_Element_Submit('submit');
        $submit->setAttrib('id', 'boutonenvoyer')
                ->setLabel('Valider')
                ->addDecorators(array(
                                     'ViewHelper',
                                     array(array('td' => 'HtmlTag'), array('tag' => 'td', 'colspan' => 2)),
                                     array(array('tr' => 'HtmlTag'), array('tag' => 'tr')))
                                );

        $this->addElements(array($id, $date, $titre, $texte, $image, $legende, $zoom, $submit));

        $this->setDecorators(
            array(
                'FormElements',
                array('HtmlTag', array('tag' => 'table')),
                'Form'
            )
        );
    }

Dernière modification par Paul75 (16-01-2011 00:21:43)

Hors ligne

 

#2 03-03-2011 12:36:09

sbe
Nouveau membre
Date d'inscription: 03-03-2011
Messages: 1

Re: Problème accents dans un formulaire (modification)

Bonjour, je ne sais pas si ton problème est toujours d'actualité, mais ça pourra aider d'autres personnes.
J'ai eu ce problème, et c'était parce que mon fichier n'était pas en utf-8, mais en ansi. Pour régler ça, j'ai converti le fichier en utf-8 (sans bom). Avec notepad++ : encodage > convertir en utf-8 (sans BOM)

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