Foros del Web » Programando para Internet » PHP » Zend »

Problema Acentos,Tildes,ñ en Formulario de Zend

Estas en el tema de Problema Acentos,Tildes,ñ en Formulario de Zend en el foro de Zend en Foros del Web. Manifestacion del problema: Al generar el fomulario utilizando Zend_Form cualquier dato que contenga acentos,tildes,ñ en general cualquier caracter especial, no es mostrado en el campo ...
  #1 (permalink)  
Antiguo 14/06/2012, 10:50
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Problema Acentos,Tildes,ñ en Formulario de Zend

Manifestacion del problema: Al generar el fomulario utilizando Zend_Form cualquier dato que contenga acentos,tildes,ñ en general cualquier caracter especial, no es mostrado en el campo respectivo del formulario, quedando sin valor o en blanco. de igual forma, si muestro el formulario he ingreso un valor con acentos, al enviar el formulario via POST para su procesamiento en el controller al recuperar dicha valor muestra basura donde deberia ir el acento.

A nivel de las vistas, esta definido el uso del charset=utf-8, y de echo todas las palabras con acentos fuera del formulario se imprimen de forma correcta,

Para el formulario se definio ->setAttrib('accept-charset','UTF-8'') pero esto no soluciono el problema, como prueba coloque el codigo generado por el Zend_Form, directamente en codigo html en la vista como un formulario aparte (osea sin usar el zend_form) y este si muestra los valores en los campos de forma correcta.

En la base de datos tambien se define el uso de utf-8 y de echo los valores se recuperan correctamente y se imprimen en la vista de forma correcta, pareciera que solo el formulario no los quiere aceptar.

Tambien probe colocar el dato con acento directamente sin usar la base de datos con ->setValue('mañana') pero no funciono.

En resumen las vistas presentan los valores con acentos sin problema el unico componente que no los procesa bien es el Zend_Form por alguna razon que desconozco.

He ejecutado muchisimos consejos que encontre en la web sin exito, si alguien me puede dar una pista de por donde esta mi problema se lo agradecere infinitamente.

Saludos
  #2 (permalink)  
Antiguo 23/06/2012, 09:53
Avatar de manuelgb13  
Fecha de Ingreso: junio-2012
Ubicación: Bogotá
Mensajes: 2
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Problema Acentos,Tildes,ñ en Formulario de Zend

Hola,

Yo probe agregando el siguiente filtro al elemento:
$HtmlEntities= new Zend_Filter_HtmlEntities(array('charset' => 'iso-8859-1'));

Así ya logro generar la cadena de texto, pero en vez de los acentos y las ñ coloca otros simbolos.

Sin embargo en este hilo hay otras soluciones http://www.forosdelweb.com/f68/acentos-zend_form-888746/

Espero sea de ayuda.
  #3 (permalink)  
Antiguo 25/06/2012, 14:16
Avatar de manuelgb13  
Fecha de Ingreso: junio-2012
Ubicación: Bogotá
Mensajes: 2
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Problema Acentos,Tildes,ñ en Formulario de Zend

Finalmente lo pude solucionar así:

Al momento de crear el elemento le agrego el filtro "HtmlEntities":

$nombre = new Zend_Form_Element_Text ('nombre', array ('filters' => array ('StringTrim','HtmlEntities'), 'size' => 50, 'disableLoadDefaultDecorators' => true);

Y luego en la vista cuando llamo al elemento aplico html_entity_decode() asi:

html_entity_decode($this->form->nombre)

Con esto es suficiente para que muestre de forma correcta todos los carácteres.
  #4 (permalink)  
Antiguo 26/06/2012, 10:25
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Problema Acentos,Tildes,ñ en Formulario de Zend

Pongo la solucion que utilice por si a alguien le ayuda.

A los elementos del Zend_Form que manejan los datos agregue

->setAttrib("escape",true)

Etiquetas: acentos, caracteres-especiales, problema+formulario, tildes, zend-form
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:32.