Foros del Web » Programando para Internet » Jquery »

Problemas con acentos en load de Jquery

Estas en el tema de Problemas con acentos en load de Jquery en el foro de Jquery en Foros del Web. Buenas, Ya llevo 2 días en esto y nada que logro dar con la solución, estoy trabajando en Symfony con JQuery, básicamente lo que quiero ...
  #1 (permalink)  
Antiguo 29/05/2012, 12:44
Avatar de palma2039  
Fecha de Ingreso: septiembre-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Problemas con acentos en load de Jquery

Buenas,

Ya llevo 2 días en esto y nada que logro dar con la solución, estoy trabajando en Symfony con JQuery, básicamente lo que quiero hacer es que cuando en un combo se selecciona un departamento Jquery me cargue todos los municipios que pertenecen al mismo en otro combo, esto lo hace llamando a un action, funciona perfecto en mi localhost (lo hace si hay tildes o no) pero en el server definitivo no funciona cuando hay un departamento que tiene una tilde. Al parecer ni siquiera llega al action, se que el texto en "departamentoSeleccionadoValido" (ver codigo del jquery) se arma bien pues con un alert lo he verificado pero al momento de hacer el load no funciona.

Aquí el código en el Jquery:

Código:
jQuery(document).ready(function(){
 
        jQuery('#departamentos').change(function(){
            
            var caracterActual = "";
            var departamentoSeleccionadoValido = "";
            for(x=0; x<($("#departamentos option:selected").val().length); x++){
                caracterActual = $("#departamentos option:selected").val().substring(x,x+1);
                //                alert(caracterActual);
                if(caracterActual == " ")
                    departamentoSeleccionadoValido += "+";
                else
                    departamentoSeleccionadoValido += caracterActual;
            } 
            
            jQuery('#municipios').load('cargarMunicipios?id=' + departamentoSeleccionadoValido);            a  
            return false;
 
        });
 
    });
Lo del caracter actual y departamento selecionado valido lo hago para que no me envie espacios en blanco pues no me funcionaba, a cambio ahora donde hay un espacio pone un +. Ej: Hola+como+estas

En la cabecera de los php tengo:

Código:
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
Este es codigo HTML, en departamentos se recorre un arreglo que me envia el action que carga el template aqui los departamentos vienen con tilde y funcionan sin problema:

Código HTML:
<tr>
            <td>Departamento: </td>
            <td><span id="spryselect1">
                    <label>
                        <select id="departamentos" name="departamento" style="width:200px" >
                            <option value="0" selected="selected">Seleccione un Departamento</option>
                            <?php for ($i = 0; $i < sizeof($departamentos); $i++) { ?>
                                <option value="<?php echo $departamentos[$i]; ?>"><?php echo $departamentos[$i]; ?></option>
                            <?php } ?>
                        </select>
                    </label>
                    <span class="selectInvalidMsg"> es requerido.</span></span></td>
        </tr>
        <tr>
            <td>Municipio: </td>
            <td><span id="spryselect2">
                    <span>
                        <select id="municipios" name="municipio" style="width:200px" >
                            <option value="0" selected="selected">Seleccione un Municipio</option>                        
                        </select>
                    </span>
                    <span class="selectInvalidMsg"> es requerido.</span></span></td>
        </tr> 
Y en action lo que hago en este momento es solo agregar una opcion que dice hola, esto porque he estado haciendo pruebas:

Código:
public function executeCargarMunicipios(sfWebRequest $request) {
        
        $respuesta = '<select name="municipios" id="municipios">
                    <option value="0" selected="selected">hola</option>
                    
                    
                </select>';

            $this->getResponse()->setContent($respuesta);
            return sfView::NONE;
}
Al final si seleciono un departamento que tiene una tilde no me carga nada en el combo de municipios pero si selecciono un departamento sin tilde me carga la opcion "hola" en el combo de municipios sin problema. Como decia asi como esta en mi localhost me sirve sin problemas pero en el server definitivo no funciona.

Alguien tiene alguna sugerencia.

Disculpas lo por largo.

XD
  #2 (permalink)  
Antiguo 29/05/2012, 12:57
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problemas con acentos en load de Jquery

Probaste de usar encodeURI() cuando pasas los parámetros?

más info
http://www.digitalbart.com/blog/jquery-and-urlencode/

Sería bueno también analizar los encabezados en el server.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 29/05/2012, 13:52
Avatar de palma2039  
Fecha de Ingreso: septiembre-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problemas con acentos en load de Jquery

Cita:
Iniciado por emprear Ver Mensaje
Probaste de usar encodeURI() cuando pasas los parámetros?

más info
http://www.digitalbart.com/blog/jquery-and-urlencode/

Sería bueno también analizar los encabezados en el server.

Saludos
Gracias Emprear,

hice lo que me indicas y quedo asi:
Código:
 jQuery(document).ready(function(){
 
        jQuery('#departamentos').change(function(){
            
            var caracterActual = "";
            var departamentoSeleccionadoValido = "";
            for(x=0; x<($("#departamentos option:selected").val().length); x++){
                caracterActual = $("#departamentos option:selected").val().substring(x,x+1);
                //                alert(caracterActual);
                if(caracterActual == " ")
                    departamentoSeleccionadoValido += "+";
                else
                    departamentoSeleccionadoValido += caracterActual;
            } 
            
    jQuery('#municipios').load(encodeURI('cargarMunicipios?id=' + departamentoSeleccionadoValido));    
    alert(encodeURI('cargarMunicipios?id=' + departamentoSeleccionadoValido));
            return false;
 
        });
 
    });
Sin embargo sigue sin funcionar, si me indicas a que te refieres con analizar los encabezados en el server lo puedo revisar y tambien te lo agradeceria.

Al hacer el alert: alert(encodeURI('cargarMunicipios?id=' + departamentoSeleccionadoValido)); me imprime lo siguiente: cargarMunicipios?id=Atl%C3%A1ntida esto cuando selecciono la opción "Atlántida"

Saludos,

Última edición por palma2039; 29/05/2012 a las 14:05
  #4 (permalink)  
Antiguo 29/05/2012, 14:40
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problemas con acentos en load de Jquery

En principio me guio por el hecho de que mencionás que en localhost la aplicación se ejecuta sin problemas, por lo que descartamos problemas de sintáxsis.
Te aclaro también que no uso Symfony.
Otra duda que me queda es si 'cargarMunicipios? es un php y que hace exactamente
executeCargarMunicipios, estás extrayendo algo de una base de datos?

Como sea, yo usaría utf-8 y verificar que tanto tu php, html y tu js esté guardado como tal, y en el caso de usar una base de datos, idem

Para revisar los encabezados podés usar alguna de las extensiones para firefox(yo uso Webdeveloper)
. Webdeveloper/información/ver encabezados de página

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 29/05/2012, 15:59
Avatar de palma2039  
Fecha de Ingreso: septiembre-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problemas con acentos en load de Jquery

Cita:
Iniciado por emprear Ver Mensaje
En principio me guio por el hecho de que mencionás que en localhost la aplicación se ejecuta sin problemas, por lo que descartamos problemas de sintáxsis.
Te aclaro también que no uso Symfony.
Otra duda que me queda es si 'cargarMunicipios? es un php y que hace exactamente
executeCargarMunicipios, estás extrayendo algo de una base de datos?

Como sea, yo usaría utf-8 y verificar que tanto tu php, html y tu js esté guardado como tal, y en el caso de usar una base de datos, idem

Para revisar los encabezados podés usar alguna de las extensiones para firefox(yo uso Webdeveloper)
. Webdeveloper/información/ver encabezados de página

Saludos
Ok por partes,

Primero cuando hago referencia a cargarMunicipios estoy llamando al excecuteCargarMunicipos esto en symfony funciona como si llamara a un php y hace lo mismo, me carga lo que le indico en execute.... No estoy sacando nada de base de datos, simplemente si selecciono un departamento X quiero que me cargue todos su municipios los cuales los pondria en excecuteCargarMunicipos (solo que esto no esta porque ni siquiera me carga "Hola").

utilice el plugin para ver los encabesados y me mostro esto:

Código:
Via: 1.1 SRVTMG01
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Transfer-Encoding: chunked
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Date: Tue, 29 May 2012 20:47:01 GMT
Content-Type: text/html; charset=utf-8
Server: Apache/2.2.4 (Linux/SUSE)
X-Powered-By: PHP/5.3.1
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

200 OK
Ademas use otra funcionalidad de firefox que esta en herramientas->Desarrollo Web Consola Web y cuando doy clic en el combo y selecciono un departamento que tiene tilde me muestra lo siguiente:

Código:
--
[15:55:52.952] El uso del atributo especificado en atributos está desaprobado. Siempre devuelve verdadero. @ http://www.econegociosagricolas.com/sipsatrec/web/socios/indexInsertarSocio

[15:55:53.170] GET http://www.econegociosagricolas.com/sipsatrec/web/socios/cargarMunicipios?id=Atl%C3%A1ntida [HTTP/1.1 500 ( The request was rejected by the HTTP filter. Contact the server administrator.  ) 10ms]
Si selecciono un departamento sin tilde no da problemas y pone lo siguiente:

Código:
--
[15:58:22.786] GET http://www.econegociosagricolas.com/sipsatrec/web/socios/cargarMunicipios?id=Comayagua [HTTP/1.1 200 OK 63ms]
  #6 (permalink)  
Antiguo 29/05/2012, 16:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problemas con acentos en load de Jquery

Mirá habría que revisar todo, pero te propongo una solución parcial. habría que probarla

En lugar de
Código HTML:
Ver original
  1. <option value="Atlántida">Atlántida</option>
  2. <option value="Colón">Colón</option>
  3. <option value="Comayagua">Comayagua</option>

usar

Código HTML:
Ver original
  1. <option value="Atlantida">Atlántida</option>
  2. <option value="Colon">Colón</option>
  3. <option value="Comayagua">Comayagua</option>

Es decir, en los values no usar los acentos

Fijate

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 29/05/2012, 18:42
Avatar de palma2039  
Fecha de Ingreso: septiembre-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problemas con acentos en load de Jquery

Hola Emprear,

Pues si esa es una solución que pensé y si funciona, el problema es que no es solo ese combo con el que tengo el problema a lo largo de todo el sitio web tengo otros campos en los que hago un load y en los cuales si pongo un acento no sirve ( y no todos son combos sino que tambien hay inputs que el usuario ingresa), es por esto que necesito resolverlo.

Si tienes alguna otra sugerencia te lo agradecería y sino se te ocurre nada mas gracias por tu tiempo.

Saludos
  #8 (permalink)  
Antiguo 30/05/2012, 09:37
Avatar de palma2039  
Fecha de Ingreso: septiembre-2009
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problemas con acentos en load de Jquery

Jejejeje al final lo resolvi, y no tenia nada que ver con el codigo, era un problema con un http Filter que no permitia que pasaran acentos!!!!
  #9 (permalink)  
Antiguo 30/05/2012, 09:47
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problemas con acentos en load de Jquery

Me alegro, si mal no recuerdo eso es algo del mod_security de apache

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: acentos, load
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 17:45.