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;
}
}
}
}
}
}
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...