Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2007, 07:02
GoRaXaN
 
Fecha de Ingreso: julio-2007
Mensajes: 21
Antigüedad: 17 años, 4 meses
Puntos: 0
Ordenacion tabla

Buenas, voy avanzando en la programacion javascript. He conseguido cosas interesantes y ahora me gustaria poder ordenar tablas sin necesidad de acceder al servidor cada vez que desee ordenarlas.
Sigo el metodo bubble sort ya que es facil de implementar pero aun asi no consigo hacerlo funcionar.

Columna = entero que representa la columna que quiero ordenar (0=1a columna,1=2a columna,...).
Tabla = Tabla que quiero ordenar.

Código PHP:
function ordenar(columna,tabla) { 
  
nMax=tabla.getElementsByTagName('tr').length
  
alert("empiezo a ordenar, numero de filas: "+nMax); 
  
i=1
  for(
i=1;i<nMax;i++) { 
    for(
j=0;j<nMax-1;j++) {  
      
alert("i: "+i+"j: "+j); 
      if(
tabla.getElementsByTagName('tr')[j].getElementsByTagName('input')){ 
        
alert("input type = "+tabla.getElementsByTagName('tr')[j].getElementsByTagName('input')[columna].type); 
        if(
tabla.getElementsByTagName('tr')[j].getElementsByTagName('input')[columna].type=="text"){ 
          
alert(tabla.getElementsByTagName('tr')[j].getElementsByTagName('input')[columna].value); 
          
alert(tabla.getElementsByTagName('tr')[j+1].getElementsByTagName('input')[columna].value); 
          if(
tabla.getElementsByTagName('tr')[j].getElementsByTagName('input')[columna].value 
             
tabla.getElementsByTagName('tr')[j+1].getElementsByTagName('input')[columna].value) { 
             
temp=tabla.getElementsByTagName('tr')[j].innerHTML
             
alert(temp); 
             
tabla.getElementsByTagName('tr')[j].innerHTML=tabla.getElementsByTagName('tr')[j+1].innerHTML;
             
tabla.getElementsByTagName('tr')[j+1].innerHTML=temp
          } 
        } 
      }  
    } 
  } 

EDIT: La tabla es una tabla de inputs de tipo texto y checkbox. El algoritmo comprueba que el input sea de tipo texto
El codigo funciona bien hasta la hora de intercanviar el codigo, mi pregunta es si se puede hacer la siguiente instruccion:
tabla.getElementsByTagName('tr')[j].innerHTML=tabla.getElementsByTagName('tr')[j+1].innerHTML;
Ya que es donde me da el error.

Gracias como siempre!

PD: He buscado en el foro y he visto que hace un tiempo alguien dio el siguiente link http://slayeroffice.com/code/tableSort.html pero es demasiado liado para mi...

Última edición por GoRaXaN; 24/07/2007 a las 07:08