Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 06-abr-2008, 04:13   #1 (permalink)
viktoria ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 293
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!
viktoria está desconectado   Responder Citando
Antiguo 06-abr-2008, 05:14   #2 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.208
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
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 06-abr-2008, 06:34   #3 (permalink)
viktoria ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 293
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!';
}

viktoria está desconectado   Responder Citando
Antiguo 06-abr-2008, 07:17   #4 (permalink)
Moderata
JavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradableJavierB es realmente agradable
 
Avatar de JavierB
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 19.552
Re: createElement('table') no funciona en IE

Movido al foro de AJAX desde JavaScript.

Saludos,
__________________
Lee las Políticas de los foros y escribe correctamente.
JavierB está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:11.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93