Foros del Web » Programando para Internet » Javascript »

Cambiar contenido de un <TR>

Estas en el tema de Cambiar contenido de un <TR> en el foro de Javascript en Foros del Web. Hola foreros! le traigo esta duda que estoy tratando de resolver hace ya 4 horas! Es posible cambiar el contenido de una tabla, mas precisamente ...
  #1 (permalink)  
Antiguo 14/12/2006, 00:11
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 18 años
Puntos: 0
Exclamación Cambiar contenido de un <TR>

Hola foreros! le traigo esta duda que estoy tratando de resolver hace ya 4 horas!

Es posible cambiar el contenido de una tabla, mas precisamente el contenido de un <TR> ?

Lo que estoy tratando de hacer es que al hacer click en un boton, modifique un <TR> con ID=CAMBIO y que tome los datos: <td>Se cambio la fila </td>...

La verdad que intente de todo, lo que me funciono con Mozilla Firefox es lo Siguiente:

Código HTML:
divFormulario = document.getElementById("CAMBIO");
divFormulario.innerHTML = '<td>Se cambio la fila </td>';
Pero no me resulto con IE :(
Creo que es por usar ElementById en vez de ElementsByTagsName pero es que preciso que se cambie un TR y no un DIV, Probe tambien poniendo la tabla dentro de un DIV y con InnerHTML cargar todas las columnas y filas.. pero no se.. ya estoy mareado .

Bueno, es todo, espero haber sido claro.

Saludos!
  #2 (permalink)  
Antiguo 14/12/2006, 01:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 34
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Cambiar contenido de un <TR>

Olvidate del tr al fin y al cabo lo que vas a modificar es la celda, asignale un id a la celda e intenta esto:

html:



<body>

<table>
<tr>
<td id = "celda">
Texto de inicio
</td>
</tr>

</table>


</body>



script:


function Cambiarfila()
{
var arr =document.getElementsByTagName('TD');
for(i=0;i<arr.length;i++)
{ //se barre el arreglo de inputs
if(arr[i].id =="celda")
{

arr[i].innerText = "Se cambio a esto";


}


}


}
  #3 (permalink)  
Antiguo 15/12/2006, 06:41
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 18 años
Puntos: 0
Re: Cambiar contenido de un <TR>

Hola Arkhel, gracias por contestar, lo probe y no me funciono... te comento en detalle como tengo armada la cosa:

Una tabla dinamica con PHP:
Código PHP:
// includes de Conexión a BASE y QUERYs

        
echo "<table class=\"list_table\" align=\"center\">"
        echo 
"<tr class=\"list_tr_head\">"
     
        
//Headers
        
for ($i 0$i10$i++) //saco 10 columnas - headers
        

        
$name=$this->fields[$i];
        
$sort=$_GET['sort'];
        
$orden=$_GET['orden'];

            
// Headers 
            
echo "<td>".$name."</td>"
            
        }
        echo 
"<td>operaciòn</td></tr>"

        while (
$rows mysql_fetch_row($result)) 
        { 
        
$id=$rows[0];
            echo 
"<TR id=\"edita$id\">"//Identifico para posterior Actualización 
         
          
for ($i 0$i 10$i++) //saco 10 columnas - datos
            

                echo 
"<td >&nbsp;".$rows[$i]."</td>"
            } 
            echo 
"<td><img onclick=\"editar($id); actualiza($id);\" src=\"img/edit.png\" title=\"Editar $id\">
</td></tr>"
;              
        } 
        echo 
"</table>"

Hasta aca es normal, una tabla simple.
Fijate que a cada Linea (<TR>) le asigno un ID para actualizarlo mas adelante.

La cosa funciona asi, cuando hago click en la Imagen EDIT.PNG, uso una funcion que edita el registro y le setea un dato. Cuando se cambia la informacion, necesito Actualizar esa Linea (<tr>) con los datos traidos desde la BD, entonces uso esta funcion:


Código:
function actualiza(id){

//instancio el objetoAjax
ajax2=objetoAjax();
	ajax2.open("GET", "editado.php?id="+id);
	ajax2.onreadystatechange=function() {
if (ajax2.readyState==4) {
			
	//Identifico el <TR> a Actualizar concatenando...
	tr='edita'+id;
	editarTR = document.getElementById(tr);

	//muestro los resultados de editado.php en base al id enviado.
	editarTR.innerHTML = ajax2.responseText;			
}
	}
ajax2.send(null)
}
El archivo que muestra los datos nuevos es editado.php:
Código PHP:
//...includes de Conexión a BASE y QUERYs
//Obterngo el ID recibido y hago el query sobre el Registro.

        
for ($i 0$i10$i++) //saco 10 columnas - headers
        

        
$name=$this->fields[$i];
        
$sort=$_GET['sort'];
        
$orden=$_GET['orden'];

    
// Headers 
            
echo "<td>".$name."</td>"
        }
        echo 
"<td>operaciòn</td>"
    
//Data
        
while ($rows mysql_fetch_row($_pagi_result)) 
        { 
        
$id=$rows[0];         
        for (
$i 0$i 10$i++) //saco 10 columnas - datos
            

                echo 
"<td >&nbsp;".$rows[$i]."</td>"
            } 
        echo 
"<td><img onclick=\"editar($id); actualiza($id);\" src=\"img/edit.png\" title=\"Editar $id\"></td>";     
        } 
Entonces, cuando se produce la edición de los datos en la Base, se ejecuta la funcion actualiza(); quien, a travez de AJAX, me trae los nuevos datos de la forma (<TD>campoN</TD><TD>campo...) para Insertarlos en el <TR> identificado.

Estos codigos funcionan perfectamente en Firefox, pero en IE me da el error: "Error desconocido en tiempo de ejecución"

No se que más hacer... por esto recurri a los Foreros! espero haberme explicado, Saludos.
  #4 (permalink)  
Antiguo 15/12/2006, 07:31
 
Fecha de Ingreso: junio-2004
Mensajes: 621
Antigüedad: 19 años, 11 meses
Puntos: 25
Re: Cambiar contenido de un <TR>

¿y el objetoAJAX que llamas ahí está bien instanciado en IE?
¿has comprobado que te devuelve lo que piensas con un alert() ?
__________________
eContento
- Mis artículos y tutoriales
- Mis jsfiddles
  #5 (permalink)  
Antiguo 16/12/2006, 04:07
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 18 años
Puntos: 0
Re: Cambiar contenido de un <TR>

hola eContento, si, se que funciona correctamente porque uso el mismo objetoAJAX para otros links y fuciona bien en IE y Firefox, y tambien use alerts en todos los pasos y recibo todo: el edita$id y el contenido nuevo traido desde la BD luego de Actualizar. (<td>campo1_nuevo</td><td>....)

Estaba pensando, no será porque debo armar el Grid con Div's en vez de una tabla?

Saludos!
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 10:54.