Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Je vais plutôt pendre Zend_FORM
$form->hang(); //hang=pendre
la syntaxe est-elle juste?
Hors ligne
Help!!! please
Hors ligne
Une fois de plus, je répète qu'il est complètement inutile de poster des "Helppppp !!!!!" ou encore "UP please"
Si personne réponds, c'est que personne n'a la réponse.
Dans ce cas, soit tu prends le temps de chercher plus en profondeur, soit tu reprends tout depuis le début.
Hors ligne
Désolé Mr MoOx, il faut comprendre ma situation.
Je suis bloqué, j'ai cherché dans tous les sens. J'ai lu plusieurs articles à titre d'exemple, je cite ce lien :
http://j-willette.developpez.com/tutori … e-en-utf8/
J'ai essayé de contourner le problème autrement mais à chaque fois, je suis confronté à une difficulté supplémentaire. Et là, je dois mettre mon projet en production très prochainement.
De plus, c'est un frum d'entraide. donc c'est normal de demander de l'Aide!
Dernière modification par ziedb (18-11-2009 14:43:25)
Hors ligne
1- J'ai enlevé mon $this->view->setEscape('utf8_encode');
2 - J'ai mis dans mon controleur $this->_response->setHeader('Content-Type', 'text/html; charset=utf-8');
3- J'a mis dans ma vue <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> (J'ai esayé sans cette ligne, ça ne change rien car j'ai déjà fait le point1. Le résultat est le même)
Voici le code
Controleur
public function newresAction() { ..... $form = new fmNewRes(); if ($this->_request->isPost()) { $formdata = $this->_request->getPost (); if ($form->isValid($formdata)) { $res = new mRessources(); $id = $res->nvRes($form->getValues()); if ($id>0) { $this->_redirect('/manage/ressources/resprev/idres/'.strval($id)); }else { $this->view->message = 'Impossible d\'intégrer les données dans la base. La ressource existerait déjà.' . 'Veuillez vérifier vos données.'; } }else { $form->populate($formdata); $this->view->message = 'Veuillez vérifier vos données.'; } } $this->view->form = $form; $this->_response->setHeader('Content-Type', 'text/html; charset=utf-8'); }
Vue :
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ... echo $this->form; ...
Form
class fmNewRes extends Zend_Form { public function __construct($options=null) { parent::__construct($options); $this->setName('newres'); $libelle =new Zend_Form_Element_Text('lib'); $libelle->setLabel('Libellé') ->setRequired(true) ->addValidator('StringLength', false, array(5, 30)); $Module =new Zend_Form_Element_Text('mod'); $Module->setLabel('Module') ->setRequired(true) ->addFilters(array('StripTags')) ->addValidator('StringLength', false, array(5, 30)) ->addValidator('Alpha'); $Controleurs =new Zend_Form_Element_Text('cont'); $Controleurs->setLabel('Contrôleur') ->setRequired(true) ->addFilters(array('StripTags','StringTolower')) ->addValidator('StringLength', false, array(5, 30)) ->addValidator('Alpha'); $actions =new Zend_Form_Element_Text('act'); $actions->setLabel('Action') ->setRequired(true) ->addFilters(array('StripTags','StringTolower')) ->addValidator('StringLength', false, array(5, 30)) ->addValidator('Alpha'); $submit = new Zend_Form_Element_Submit('submit'); $submit->setLabel('Ajouter Ressource') ->setRequired(false) ->setIgnore(true); $this->addElements(array($libelle,$Module,$Controleurs,$actions,$submit)); ; } }?>
Le résultat obtenu est le suivant :
1- Les libélles avec des caractères spéciaux ne sont pas affichées correctements exp le é de Libellé est remplacé par un carré
2- Dans la cas d'un $form->populate, les éléments qui contiennet un filtre strtolower ne s'affichent pas correctement exp : $controleurs, $actions
3- Seuls les éléments qui ne contiennet pas le filtre 'StringToLower' s'affichent correctement
Dernière modification par ziedb (19-11-2009 00:06:11)
Hors ligne
La plus part du temps, c'est l'entête Content-Type HTTP et non pas HTML que les navigateurs utilisent. Tu peux donc aussi vérifier tes entêtes HTTP
Hors ligne
Normalement c'est fait avec l'instruction suivante dans mon controleur :
$this->_response->setHeader('Content-Type', 'text/html; charset=utf-8');
Ou faut-il faire autrement?
Hors ligne
ziedb a écrit:
Normalement c'est fait avec l'instruction suivante dans mon controleur :
Code:
$this->_response->setHeader('Content-Type', 'text/html; charset=utf-8');Ou faut-il faire autrement?
Excellente question.. Perso, j'utilise la conf d'apache
Test en telnet, tu verras bien si la valeur est correct
telnet localhost 80 GET / HTTP/1.1 host: localhost
Ou alors, si tu as firefox et la developper toolbar : information -> En-Têtes HTTP (réponse)
Hors ligne
salut,
j'avais rencontré ce problême et je l'avais solutionné en metant ceci dans mon index.php:
setlocale(LC_CTYPE,'fr_FR.UTF-8'); iconv_set_encoding('internal_encoding', 'UTF-8'); iconv_set_encoding('output_encoding', 'UTF-8'); iconv_set_encoding('input_encoding', 'UTF-8'); header('Content-Type: text/html; charset=utf-8');
Hors ligne