Foros del Web » Programando para Internet » Javascript » Frameworks JS »

problemas con la respuesta AJAX

Estas en el tema de problemas con la respuesta AJAX en el foro de Frameworks JS en Foros del Web. Hola! Tengo problemas al evaluar una respuesta Ajax. Ayer tuve un problema con la codificacion de las páginas, y en el foro de PHP me ...
  #1 (permalink)  
Antiguo 08/04/2010, 05:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
problemas con la respuesta AJAX

Hola!
Tengo problemas al evaluar una respuesta Ajax.
Ayer tuve un problema con la codificacion de las páginas, y en el foro de PHP me ayudaron a resolverlo, pero supongo que lo que me está pasando ahora tiene mucho que ver.
El tema es el siguiente, a ver si me explico: en el php que se ejecuta con ajax hago un echo "hola";, y al evaluar la respuesta con javascript, la igualdad ("hola" == objA.responseText.trim()) me devuelve falso, cuando debería ser true.

La página php en cuestión tiene el header con el charset en utf-8, y está guardada con codificación UTF-8.

He probado a imprimir el echo con utf8_encode, utf8_decode, html_entity_decode, y varias maneras más, pero me he dado cuenta (gracias al FireBug) de que imprima lo que imprima, siempre me devuelve algo delante de la cadena que yo imprimo. Por ejemplo si hago un echo "hola"; me devuelve " · hola", y lo de delante no son espacios en blanco, ya que el trim de esa cadena no hace nada.

Si alguien puede ayudarme se lo agradecería eternamente ya que este tema me tiene ya bastante mosqueada .
  #2 (permalink)  
Antiguo 08/04/2010, 07:02
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: problemas con la respuesta AJAX

Hola

Lo que te puedo decir es que la función Trim() no existe en javascript. Podrías usar prototype para crear la función

Por otro lado, parece mas correcto hacer la condicional a revés, es decir

Cita:
if (objA.responseText == 'hola');
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 08/04/2010, 08:25
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: problemas con la respuesta AJAX

Hola, gracias por responder.

Es lo que estoy usando, la funcion Trim de prototype.
Y el condicional da igual el orden en el cual lo escriba, porque no funciona de ninguna manera...
Alguien sabe qué puede estar pasando?
  #4 (permalink)  
Antiguo 08/04/2010, 10:44
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: problemas con la respuesta AJAX

Bueno he solucionado temporalmente el problema escribiendo **** antes de la respuesta en cuestion del ajax. Y luego al recoger los valores hago un split("****"), y ahí ya puedo recoger el texto limpio, pero he comprobado que el problema viene cada vez que hago un echo en el archivo del ajax.

Resulta que está añadiendo unos caracteres raros al inicio del contenido de cada echo. ¡qué raro, no?!
  #5 (permalink)  
Antiguo 09/04/2010, 16:37
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: problemas con la respuesta AJAX

Bueno, no se para que quieras hacer un condicional, pero yo lo que hago cuando la respuesta del servidor es variable, es decir que puede actualizar un div con codigo html o ejecutar mas codigo javascript lo que hago es esto:

Código PHP:
Ver original
  1. <?php
  2.  if ($algo == "algo")
  3.  {
  4.      echo "<font>hola mundo</font>";
  5.      echo "[js]1";
  6.  }
  7.   else
  8.   {
  9.         echo "alert('hola mundo');
  10.        echo "[js]0";
  11.  }
  12. ?>


en el javascript hago esto

Código Javascript:
Ver original
  1. var arreglo = ajax.responseText.split("[js]");
  2.     if (arreglo[1] == 1)
  3.    {
  4.          document.getElementById("div_actualizar").innerHTML = arreglo[0];
  5.    }
  6.    else
  7.    {
  8.           eval(arreglo[1]);
  9.    }

espero haberme hecho entender y que te sirva de algo.

Etiquetas: ajax, respuesta
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 16:10.