Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   createElement('table') no funciona en IE (http://www.forosdelweb.com/f127/createelement-table-no-funciona-ie-573030/)

viktoria 06/04/2008 04:13

createElement('table') no funciona en IE
 
Hola chicos,

Estoy migrando una aplicacion a AJAX, en fin poco a poco ....

Intento crear una tabla de forma dinamica, adjunto el codigo de esta, que funciona perfectamente en mozila firefox, pero en IE no hace nada! No crea nada.


Código PHP:

           var tab document.createElement('table');
       var 
tabBody document.createElement('tbody');
                
        for(
i=0i<dates.lengthi++){
                
        var 
id "bla"// cualquier valor da igual
                    
        
var title document.createTextNode(un valor);// cualquier valor da igual
                    
        
var row document.createElement('tr');
                    
        
/*cell with checkbox*/
        
var cellCb document.createElement('td');
                    
        
/*cell with title of paper*/
        
var cellTitle document.createElement('td');
                    
        
/*check box*/
        
var cb document.createElement('input');
        
cb.type "checkbox";
        
cb.id "id_paper[]";
        
cb.value id;
                    
        
cellCb.appendChild(cb);
        
cellTitle.appendChild(title);
                    
        
row.appendChild(cellCb);
        
row.appendChild(cellTitle);
                    
        
tabBody.appendChild(row);
        }
                    
    
tab.appendChild(tabBody);    
        
document.getElementById('respuesta').appendChild(tab); 


El div con id respuesta existe en el document.

El IE necesita un requerimiento adisional para crear tablas dinamicamente?
Es que no se ni por donde empezar. Como no sale ningun error ...

Graicas a todos!

caricatos 06/04/2008 05:14

Re: createElement('table') no funciona en IE
 
Hola:

Acabo de probarlo en explorer 7 y arreglando un par de cosillas funciona... falta en el código que nos pasaste el array dates (puse esto: var dates = [1,2,3,4];
Y entrecomille lo que pusiste en createTextNode()...

No sé en qué versión de ie lo probaste... las más viejas tienen implementaciones DOM más básicas.

Saludos :arriba:

viktoria 06/04/2008 06:34

Re: createElement('table') no funciona en IE
 
Bueno, resulta (por suerte que entre en la pagina despues de unos 15 minutos) que funciona! Pero la respuesta AJAX que es inmediata en Firefox, tarda en IE unos muntos (1-2 minutos).
O sea que aparece la tabla despues de eso (2-3muntos).
No entiendo, porque tampoco me vale esperar tanto y en Firefox se ve enseguida, no tarda ni un segundo.

el codigo es este
Código PHP:

var miPeticion=getAjax();

function 
redArea(nrol){

   var 
area=nrol.value;

     var 
id_congreso=document.getElementById('id_congreso').value;
    
   var 
miAleatorio=parseInt(Math.random()*9999999);

var 
url='get_papers.php?area='+area+'&id_congreso='+id_congreso;

//open(‘method’, ‘url’ ‘a’);
miPeticion.open('GET'url+'&rand='+miAleatoriotrue);


miPeticion.onreadystatechange=respuestaAjax;


miPeticion.send(null);
}

function 
respuestaAjax(){
//si la respuesta del servidor es ok
if (miPeticion.readyState==4){
//deckaraciones que debe ejecutar el prgrama
    
if (miPeticion.status==200){
        
/*get array of papar tag */
        
var papers miPeticion.responseXML.getElementsByTagName('paper');

        
/*? array exists create new table*/
            
if(papers.length){
                
                var 
tab document.createElement('table');
                var 
tabBody document.createElement('tbody');
                
                    for(
i=0i<papers.lengthi++){
                    
                    
/* get childNode "id" value */
                    
var id papers[i].getElementsByTagName('id')[0].firstChild.nodeValue;
                    
                    
/* get childNode "title" value and create text Node */
                    
var title document.createTextNode(papers[i].getElementsByTagName('titulo')[0].firstChild.nodeValue);
                    
                    var 
row document.createElement('tr');
                    
                    
/*cell with checkbox*/
                    
var cellCb document.createElement('td');
                    
                    
/*cell with title of paper*/
                    
var cellTitle document.createElement('td');
                    
                    
/*check box*/
                    
var cb document.createElement('input');
                    
cb.type "checkbox";
                    
cb.id "id_paper[]";
                    
cb.value id;
                    
                    
cellCb.appendChild(cb);
                    
cellTitle.appendChild(title);
                    
                    
row.appendChild(cellCb);
                    
row.appendChild(cellTitle);
                    
                    
tabBody.appendChild(row);
                    }
                    
                        
tab.appendChild(tabBody);
                        
document.getElementById('respuesta').appendChild(tab);
                
        } else {
            
/*there are no papers found*/
        
}
    } else {
        
//creamos mensaje de error
        
alert(document.getElementById('respuesta').innerHTML="Ha ocurrido un error: "+miPeticion.statusText);
    }
} else {
//si readyState ha cambiado pero !=4
//metodo innerHTMl reemplazo el objeto a quien va asociado por el codigo html
//object.innerHTML=[html]
document.getElementById('respuesta').innerHTML='Se esta actualizando la información!';
}



JavierB 06/04/2008 07:17

Re: createElement('table') no funciona en IE
 
Movido al foro de AJAX desde JavaScript.

Saludos, :adios:


La zona horaria es GMT -6. Ahora son las 06:54.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.