Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Pour commencer, je débute sur zend. Je précise également que j'ai déjà parcouru tous les posts du forum sans pour autant réussir à corriger mon problème... Je me permets donc de poster.
Le problème est le suivant :
J'ai en base des données accentuées. Je les récupère de manière classique et je veux les afficher dans un form. Le populate ne marche pas pour ces données accentuées, aucune valeur n'est setter.
Je reproduis le problème en faisant le code suivant à la place du populate :
$form->getSubForm("subform1")->getElement("CON_PRENOM")->setValue('ééèèàà');
=> ne marche pas, ie aucune value sur mon champ Zend_Form_Element_Text.
par contre
$form->getSubForm("subform1")->getElement("CON_PRENOM")->setValue(utf8_encode('ééèèàà'));
=> fonctionne.
J'ai lu les problèmes relatifs au filtre strToLower que je n'utilise pas.
Ma base est du Sql Server, config standard Zend Server/Zend Studio... Tout est encodé en iso-8859-1 et je n'ai aucun autres problemes d'affichage d'accent sur les pages du site, sauf sur les ZEND_FORM.
Merci si vous avez d'autres pistes que de faire les populates à la main en faisant les utf8_encode.
Seb
Dernière modification par seb_reunion (13-07-2010 11:46:44)
Hors ligne
Re Bonjour,
En continuant à creuser, j'ai reussi à afficher mes accents dans mon zend_form en ajoutant
resources.view.encoding = "ISO-8859-1"
dans mon application.ini
Cependant, d'autres problemes sont apparus et un simple foreach sur un tableau (setter depuis mon controller) dans mon layout.phtml me pete un "Invalid argument supplied for foreach() in ...". Il suffit de commenter la ligne dans le application.ini pour que cette erreur disparaisse mais du coup mes accents dans mes form ne marchent plus...
Merci,
Seb
Dernière modification par seb_reunion (13-07-2010 10:58:43)
Hors ligne
Il faut que ton encodage soit partout pareil, ce qui ne semble pas être le cas (entre tes fichiers, base de données).
Corrige.
Hors ligne
J'ai trouvé une solution :
Plutot que de specifier mon encoding dans le application.ini, je le set dans mon bootstrap.php :
$view = new Zend_View();
$view->setEncoding('ISO-8859-1');
et la plus de soucis, mes accents passent dans mes zend_form et je peux de nouveau acceder depuis ma vue aux variables setter dans mon controller.
Merci pour l'aide,
Seb
Dernière modification par seb_reunion (13-07-2010 11:47:22)
Hors ligne