Foros del Web » Programando para Internet » Javascript »

ayudita con un xml

Estas en el tema de ayudita con un xml en el foro de Javascript en Foros del Web. Hola amigos, mi pregunta de hoy es la siguiente, resulta que estoy haciendo una consulta a la BD que trae un registro unico y que ...
  #1 (permalink)  
Antiguo 20/12/2013, 09:15
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
ayudita con un xml

Hola amigos, mi pregunta de hoy es la siguiente, resulta que estoy haciendo una consulta a la BD que trae un registro unico y que al dar buscar me la muestra llenando los input text de un formulario.
Para esto armo un xml con un registro de la base de datos, el xml queda bien armado, y lo imprimo mediante un hecho de php, y en mi funcion de javascript recibo este xml y capturo el valor de cada uno de los nodos para ponerlo en los respectivos input del formulario.

Ahora, resulta que si todos los datos que me trae la consulta estan completos, me llenan bien el formulario.
El problema es cuando falta un dato por ejemplo un telefono y el resto de datos esta llenos, es como si la funcion ajax se cortara y no me imprime en el formulario los datos de ahi pa abajo. Que puedo hacer en este caso? les dejo el codigo y gracias.



Código Javascript:
Ver original
  1. function seleccionar(id)
  2. {
  3.     peticion = new Ajax;
  4.     peticion.open("POST", "consultar.php", true);
  5.     peticion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  6.     peticion.onreadystatechange = function()   
  7.     {
  8.             if (peticion.readyState==4)
  9.             { alert (' xml:  '+peticion.responseText);    //aqui me muestra en un alert el xml bien conformado
  10.             document.getElementById('Doc').value = peticion.responseXML.getElementsByTagName("NoDocumento")[0].childNodes[0].nodeValue;
  11.             document.getElementById('Nombres').value = peticion.responseXML.getElementsByTagName("Nombres")[0].childNodes[0].nodeValue;
  12.             document.getElementById('Tel1').value = peticion.responseXML.getElementsByTagName("Telefono1")[0].childNodes[0].nodeValue;
  13.             document.getElementById('Ext1').value = peticion.responseXML.getElementsByTagName("Ext1")[0].childNodes[0].nodeValue;
  14.             document.getElementById('Cel1').value = peticion.responseXML.getElementsByTagName("Cel1")[0].childNodes[0].nodeValue;
  15.             document.getElementById('Cel2').value = peticion.responseXML.getElementsByTagName("Cel2")[0].childNodes[0].nodeValue;
  16.             document.getElementById('Diro').value = peticion.responseXML.getElementsByTagName("Direccion")[0].childNodes[0].nodeValue;
  17.             document.getElementById('Correo').value = peticion.responseXML.getElementsByTagName("Correo1")[0].childNodes[0].nodeValue;
  18.            
  19.             }  
  20.     }  
  21.     peticion.send("id="+id);
  22. }
  #2 (permalink)  
Antiguo 20/12/2013, 09:22
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: ayudita con un xml

Comprobar si existe o no puedes hacerlo así:

Código Javascript:
Ver original
  1. if(peticion.responseXML.document.getElementById("Telefono1")){
  2. // establecer el valor
  3. }

Quedaría un poco largo así con todos, pero si metes cada elemento en una variable queda bien.
  #3 (permalink)  
Antiguo 20/12/2013, 09:55
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: ayudita con un xml

Código Javascript:
Ver original
  1. if (peticion.responseXML.getElementsByTagName("Telefono2")[0].childNodes[0].nodeValue){
  2.                     document.getElementById('Tel2').value = peticion.responseXML.getElementsByTagName("Telefono2")[0].childNodes[0].nodeValue;
  3.                 }
  4.                 else
  5.                 {
  6.                     document.getElementById('Tel2').value = '';
  7.                 }

No funciono es como si se cancelara todo hasta ahi llega cuando el valor es vacio :(

Última edición por summerblack; 20/12/2013 a las 10:09
  #4 (permalink)  
Antiguo 20/12/2013, 14:04
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: ayudita con un xml

Hola:

Depende de como lo montes... de todos modos puedes consultar si existen nodos hijos con hasChildNodes()...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 21/12/2013, 11:06
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: ayudita con un xml

vale muchas gracias

Etiquetas: ajax, formulario, funcion, input, php, xml
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 14:56.