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

problema al separar funciones

Estas en el tema de problema al separar funciones en el foro de Frameworks JS en Foros del Web. Hola Gente, quisiera separar una funcion en dos, pero me da error. paso a explicar: esta es la funcion (asi funciona barbaro): Código HTML: var ...
  #1 (permalink)  
Antiguo 12/11/2007, 13:46
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
problema al separar funciones

Hola Gente, quisiera separar una funcion en dos, pero me da error.

paso a explicar:

esta es la funcion (asi funciona barbaro):
Código HTML:
var oXML;
var xmlDataSet;

function leerDatos()
{
       if (oXML.readyState == 4)
    {
        var xmlDataSet  = oXML.responseXML.documentElement;
         var tabla = '<table border = "1" bordercolor= "red"><tr>';
                                
                        
                        for (i = 0; i < xmlDataSet.getElementsByTagName('laboratorio').length; i++)
                        {
                            var item = xmlDataSet.getElementsByTagName('laboratorio')[i];
                            var idGrilla=i
                            var id = item.getElementsByTagName('id')[0].firstChild.data;
                            var cell = item.getElementsByTagName('nombre')[0];
                      }
    }
}

var url="../index.php";
    url=url+"?front"
    url=url+"&sid="+Math.random();
    
    oXML.open("GET", url,true);
    oXML.onreadystatechange = leerDatos;
    oXML.send(null);
quisiera que quede de esta manera:

Código HTML:
function leerDatos()
{
       if (oXML.readyState == 4)
    {
       xmlDataSet  = oXML.responseXML.documentElement;
    }
}
function armarTabla()
{
 var tabla = '<table border = "1" bordercolor= "red"><tr>';                                
                        
                        for (i = 0; i < xmlDataSet.getElementsByTagName('laboratorio').length; i++)
                        {
                            var item = xmlDataSet.getElementsByTagName('laboratorio')[i];
                            var idGrilla=i
                            var id = item.getElementsByTagName('id')[0].firstChild.data;
                            var cell = item.getElementsByTagName('nombre')[0];
//bla,bla.bla
}


var url="../index.php";
    url=url+"?front"
    url=url+"&sid="+Math.random();
    oXML.open("GET", url,true);
    oXML.onreadystatechange = leerDatos;
    oXML.send(null);
    armarTabla();
el tema es que cuando separo la funcion en dos me da error en la linea del for :
for (i = 0; i < xmlDataSet.getElementsByTagName('laboratorio').len gth; i++)
me dice que el objeto no acepta esa propiedad o metodo.

noté algo extraño, si le pongo un alert() en la funcion actualizarGrilla, le doy aceptar al alert en tiempo de ejecución y ahi si carga la grilla. Que tiene que ver?

function actualizarGrilla()
{

var url="../index.php";
url=url+"?front=frontLaboratorios&accion=listarlab oratorios"
url=url+"&sid="+Math.random();
alert(); Poniendo esto funciona, si lo saco da el error.
oXML.open("GET", url,true);
oXML.onreadystatechange = leerDatos;

oXML.send(null);

cargarGrilla();
}

Muchas gracias desde ya.
  #2 (permalink)  
Antiguo 12/11/2007, 14:20
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: problema al separar funciones

loading...........

Primera forma:
PAsa que estás violando la teoría de AJAX respecto a lo ASINCRONO... pero si quieres que te funcione:

oXML.open("GET", url,false);

De esa forma debe funcionarte.

Segunda Forma:
Te salta el error porque llamas a tu armarTabla antes de que termine el proceso AJAX.

armarTabla(); <-- debe estar dentro de

Código PHP:
function leerDatos()
{
       if (
oXML.readyState == 4)
    {
       
xmlDataSet  oXML.responseXML.documentElement;
       
armarTabla();
    }

connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 13/11/2007, 01:58
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: problema al separar funciones

Movido al foro de AJAX desde JavaScript.

Saludos,
  #4 (permalink)  
Antiguo 13/11/2007, 05:57
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Re: problema al separar funciones

Maestro!!!!!!!!!!!!!! Funciona. Muchicimas gracias.

saludos.
  #5 (permalink)  
Antiguo 13/11/2007, 07:36
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Re: problema al separar funciones

Tengo el siguiente problema ahora y espero no molestar mas por un tiempo.
los resultados devueltos los cargo en un div

<form name="formLista">
<form name="prueba" id="prueba">
<div class="grilla "id="lista">
</div>

los carga lo mas bien, el tema es que por alguna razón, me da el error
document.GetElementById(lista) es nulo o es un objeto.

Mucahs gracias por la ayuda

Última edición por moron; 13/11/2007 a las 08:00
  #6 (permalink)  
Antiguo 13/11/2007, 11:40
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: problema al separar funciones

loading..........

Ten cuidado con las mayúsculas y minúsculas.

Tiene que ser document.getElementById('lista');



connection closed.
__________________

Maborak Technologies
  #7 (permalink)  
Antiguo 14/11/2007, 07:28
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Re: problema al separar funciones

Gracias master, pero no es eso, sigue dando error.
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:10.