Foros del Web » Programando para Internet » Javascript »

Acute en consultas ajax

Estas en el tema de Acute en consultas ajax en el foro de Javascript en Foros del Web. Buenos dias-tardes amigos, Tengo una duda a ver si alguien sabe, resulta que tengo algunos campos que consultan el servidor via ajax, traen una data ...
  #1 (permalink)  
Antiguo 27/06/2014, 10:13
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Acute en consultas ajax

Buenos dias-tardes amigos,

Tengo una duda a ver si alguien sabe, resulta que tengo algunos campos que consultan el servidor via ajax, traen una data y la imprimen el valor que traen en inputs, todo eso perfecto, el detalle es que hay algunos valores que tienen insertados los acentos con acute, por ejemplo "demás", entonces al cargar ese tipo de valores con ajax se muestran así tal cual "demás" y no "demás" como deberia ser interpretado el acento. Queria saber si saben de alguna función en javascript que los interprete.

Se que puedo recorrer la cadena y hacer el cambio del string, pero la idea no es reinventar la rueda si javascript ya tiene algo asi. De antemano muchas gracias a quien me ayude.


Saludos.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #2 (permalink)  
Antiguo 27/06/2014, 10:27
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Acute en consultas ajax

No es culpa de AJAX, es por como los estás imprimiendo en el documento... Prueba con innerHTML o document.write, estos trabajan directamente con HTML, en vez de crear nodos de texto.
  #3 (permalink)  
Antiguo 30/06/2014, 09:06
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Acute en consultas ajax

Cita:
Iniciado por PHPeros Ver Mensaje
No es culpa de AJAX, es por como los estás imprimiendo en el documento... Prueba con innerHTML o document.write, estos trabajan directamente con HTML, en vez de crear nodos de texto.
Amigo si estoy imprimieendo el valor en un input de texto, no puedo usar esas funciones. o me equivoco? no me queda más que editar el atributo value del input de texto. que es justo lo que hago ahora, en ese caso que se podria hacer entonces? reemplazar el input con otro=?
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #4 (permalink)  
Antiguo 30/06/2014, 12:54
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Acute en consultas ajax

buuenas,
Cita:
Iniciado por rjulio21 Ver Mensaje
Amigo si estoy imprimieendo el valor en un input de texto, no puedo usar esas funciones. o me equivoco?
es correcto. de hecho, no tiene sentido ya que dentro de un INPUT no hay etiquetas e innerHTML intentará agregar el contenido dentro de la etiqueta. para tu caso, deberías usar value. sin embargo, cuando imprimes desde javascript un texto, este se mostrará tal cual lo tiene javascript. para el caso que ocupas, tienes dos opciones: corregir las entidades desde el servidor o procesar el contenido desde javascript. para tu mala suerte, no hay una función nativa en javascript que haga eso pero seguro por la web encontrarás alguna librería. después de todo, no es tan complicado de hacer.

la alternativa de lado servidor es exactamente a la de javascript. por ejemplo php posee una función para procesar las entidades del string. para mi gusto, la mejor opción es tratar de evitar el uso de las entidades siempre que sea posible. simplemente creas los documentos de forma normal con sus "símbolos especiales" (que de especial no tiene nada! ) y los almacenas con un charset apropiado. por ejemplo, utf8. esto te evitaría el problema que actualmente presentas.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 30/06/2014, 13:15
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Acute en consultas ajax

Gracias por responder zerokilled. y vale, pero para mi mala suerte el colocar los archivos como documentos son "simbolos especiales" no ha sido tan sencillo, pues más que todo en las cosas que llevo con mysql, las cosas con mysql-php dan como mucha lata para manejar los acentos. de modo que lo que he optado a sido manejar una función con php, que me analiza el string que viene de BD con acentos y los cambie a su correspondiente HTML (acute) para que se muestre perfecto en la página. y todo me funciona perfecto, exceptuando lo que consulto. de todos modos me montaré en esa funcion pues, gracias por responder. como dije al principio solo no queria reinventar la rueda.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #6 (permalink)  
Antiguo 30/06/2014, 14:21
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Acute en consultas ajax

Lo solucione de la siguiente manera:
Código Javascript:
Ver original
  1. var procesAcentos=function(str){
  2.     var acentos = {
  3.         'á':'\u00e1',
  4.         'é':'\u00e9',
  5.         'í':'\u00ed',
  6.         'ó':'\u00f3',
  7.         'ú':'\u00fa',
  8.         'Á':'\u00c1',
  9.         'É':'\u00c9',
  10.         'Í':'\u00cd',
  11.         'Ó':'\u00d3',
  12.         'Ú':'\u00da',
  13.         'Ñ':'\u00d1',
  14.         'ñ':'\u00f1',
  15.        
  16.     };
  17.    
  18.     $.each(acentos,function(key,value){
  19.        
  20.         str = replaceString(key,value,str);
  21.     });
  22.    
  23.     return str;
  24. };//fin funcion
  25.  
  26.  
  27. function replaceString(oldS, newS, fullS) {
  28.   for (var i = 0; i < fullS.length; i++) {
  29.     if (fullS.substring(i, i + oldS.length) == oldS) {
  30.      fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
  31.     }
  32.   }
  33.   return fullS;
  34. }


Gracias a todos...
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos

Etiquetas: ajax, input, valor
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 18:23.