Foros del Web » Programando para Internet » Javascript »

Existe algo parecido a esto para javascript?

Estas en el tema de Existe algo parecido a esto para javascript? en el foro de Javascript en Foros del Web. Estoy usando ajax para cargar datos con peticiones a la base de datos, las envio con formato XML, el problema es que javascript se atora ...
  #1 (permalink)  
Antiguo 08/03/2010, 09:07
Avatar de gusma62  
Fecha de Ingreso: julio-2008
Ubicación: Tepatitlán, Jalisco, Mexico
Mensajes: 167
Antigüedad: 15 años, 9 meses
Puntos: 6
Pregunta Existe algo parecido a esto para javascript?

Estoy usando ajax para cargar datos con peticiones a la base de datos, las envio con formato XML, el problema es que javascript se atora cuando existen campos vacíos en la base de datos.
Mi pregunta es si existe algo en javascript parecido a lo que se hace en actionscript (flash):

data_xml.ignoreWhite = true;



O alguna otra forma de que javascript interprete bien que es un registro vacio??

Este es el código que uso para crear el xml:
Código PHP:
Ver original
  1. $xml =  "<cuenta><datosCuenta>";
  2.         $xml .= "<cuentaNo>".$row["cuentaNo"]."</cuentaNo>";
  3.         $xml .= "<observaciones>".$row["observaciones"]."</observaciones>";                                        
  4. $xml .= "</datosCuenta></cuenta>";

Ahi, por ejemplo, si no tiene "observaciones" tengo problemas con el javascript
  #2 (permalink)  
Antiguo 08/03/2010, 09:18
Avatar de DeveloperFresh  
Fecha de Ingreso: mayo-2009
Ubicación: Ancon City
Mensajes: 35
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Existe algo parecido a esto para javascript?

Usa el DOM para realizar eso !
  #3 (permalink)  
Antiguo 08/03/2010, 09:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Existe algo parecido a esto para javascript?

¿Cuál es el código con que lees el XML?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 08/03/2010, 10:17
Avatar de gusma62  
Fecha de Ingreso: julio-2008
Ubicación: Tepatitlán, Jalisco, Mexico
Mensajes: 167
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: Existe algo parecido a esto para javascript?

Este es el código que uso en javascript para enviar y recibir la respuesta, y para convertirlo a XML
Código Javascript:
Ver original
  1. var respuesta = getDataServer("Archivos/Scripts/AJAXbuscarCuenta.php","?cuentaNo="+cuentaNo+"&");
  2.            
  3.     // Cargar como XML
  4.         if (window.DOMParser)  {
  5.               parser=new DOMParser();
  6.               xmlDoc=parser.parseFromString(respuesta,"text/xml");
  7.               }
  8.         else { // Internet Explorer
  9.               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  10.               xmlDoc.async="false";
  11.               xmlDoc.loadXML(respuesta);
  12.               }
  #5 (permalink)  
Antiguo 08/03/2010, 10:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Existe algo parecido a esto para javascript?

¿Y usas getElementsByTagName para acceder a <observaciones> o qué método utilizas?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 08/03/2010, 10:50
Avatar de gusma62  
Fecha de Ingreso: julio-2008
Ubicación: Tepatitlán, Jalisco, Mexico
Mensajes: 167
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: Existe algo parecido a esto para javascript?

Así modifico el imput "observaciones":
Código Javascript:
Ver original
  1. document.getElementById('observaciones').value=xmlDoc.getElementsByTagName('observaciones')[0].childNodes[0].nodeValue;

Sí funciona cuando tiene valor, pero cuando está vacío, se atora javascript, creo que se vuelve loco al no encontrar valor para "observaciones" :

Por eso mi pregunta, existirá alguna forma de que ignore los campos que no tienen valor?


Otra cosa, habia contemplado crear un espacio en blanco cuando creo el XML en php:
Código PHP:
Ver original
  1. $xml .= "<observaciones>".$row["observaciones"]." </observaciones>";
Nótese el espacio en blanco
Con eso se resuelve, pero tengo datos muy importantes a los que les agregaría basura por ese espacio en blanco y me causaría futuros conflictos, pues tengo que volver a guardar los valores en la BD
  #7 (permalink)  
Antiguo 08/03/2010, 11:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Existe algo parecido a esto para javascript?

Podrías usar una condición:
Código Javascript:
Ver original
  1. var obs = xmlDoc.getElementsByTagName("observaciones");
  2. if (obs[0]) {
  3.     document.getElementById('observaciones').value = obs[0].childNodes[0].nodeValue;
  4. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 08/03/2010, 11:28
Avatar de gusma62  
Fecha de Ingreso: julio-2008
Ubicación: Tepatitlán, Jalisco, Mexico
Mensajes: 167
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: Existe algo parecido a esto para javascript?

Me has salvado el pellejo David!!

Aunque al principio me desanimé porque no funcionó tu solución, reflexioné, pues tiene lógica lo que propones.

Hice algunos cambios y dió resultado:

Código Javascript:
Ver original
  1. var obs = xmlDoc.getElementsByTagName('observaciones')[0].childNodes[0];
  2. if (obs) document.getElementById('observaciones').value=obs.nodeValue;

Muy agradecido estoy David, de nuevo gracias, y saludos!

Última edición por gusma62; 08/03/2010 a las 11:37
  #9 (permalink)  
Antiguo 08/03/2010, 12:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Existe algo parecido a esto para javascript?

Hola:

También se puede consultar si el nodo tiene hijos (hasChildNodes())

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: existe
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 22:44.