Foros del Web » Programando para Internet » Javascript »

problema mostrar cont. de tabla dinámica con js

Estas en el tema de problema mostrar cont. de tabla dinámica con js en el foro de Javascript en Foros del Web. Buen día a todos. Estoy teniendo problemas para mostrar mediante un alert el contenido de una celda. Esta es mi tabla que se genera dinamicamente, ...
  #1 (permalink)  
Antiguo 14/05/2013, 07:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 84
Antigüedad: 14 años, 2 meses
Puntos: 1
Pregunta problema mostrar cont. de tabla dinámica con js

Buen día a todos.
Estoy teniendo problemas para mostrar mediante un alert el contenido de una celda.

Esta es mi tabla que se genera dinamicamente, por cada fila hay un boton que selecciona el id a mostrar en un alert:

Código PHP:
    while ($row mysql_fetch_array($result)){
        echo 
"
            <tr name=\"tr_id\">

                <td class=\"contenido\" id=\"titulo_musica\" >"
.limitarPalabras($row['titulo_musica'],20)."</td>
                <td class=\"autor\" name=\"artista_musica\" >"
.$row['artista_musica']."</td>
                <td class=\"id\" name=\"id_musica\" id='id_musica' >"
.$row['id_musica']."</td>
                                
                <td><button name=\"btnSeleccion\"  onClick='procesoXML(id_musica); return false' class=\"btn btn-info\">seleccionar</button></td>
            </tr>"
;
        
$i++;
    } 
Como ven el evento onClick me lleva a una funcion "procesoXML(id_musica)".

Código:
function procesoXML(){
	resul = document.getElementById('resultado');
	
	bus2=document.getElementsByName('id_musica');
	
        alert(bus2);
.
.
.
El problema es que siempre me tira el id nro 1, sea cual sea el que seleccione siempre manda en el alert el id nro 1.

Alguien podría guiarme en mi error?

Desde ya muchas gracias por su tiempo.
__________________
Arian
  #2 (permalink)  
Antiguo 14/05/2013, 12:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema mostrar cont. de tabla dinámica con js

tienes varios errores:

1 - al construir el ID desde PHP no le asignas el id de la DB, por el cual Todos los TD tienen como ID id_musica realmente no hay nada que los diferencie a excepción de su contenido

2 - en el evento onclick pasas una variable id_musica que no existe, al menos NO para js

3 - la función procesoXML NO espera ningún parámetro y sin embargo tratas de pasarle el id_musica desde el evento onclick

3.1 - variables sin declarar en procesoXML, use var

3.2 - bus2 siempre será el TD id_musica, la ideal es que sea el parámetro que pasas a la función

3.3 - bus2 es un objeto del DOM, por lo cual el alert mostrará eso, debes de usar bus2.innerHTML
corrija los errores e intente de nuevo.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 14/05/2013, 13:29
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 15 años
Puntos: 8
Respuesta: problema mostrar cont. de tabla dinámica con js

a la lista de maycolalvarez añade que debieras usar getElementById() y no getElementsByName()

Saludos
  #4 (permalink)  
Antiguo 14/05/2013, 13:54
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema mostrar cont. de tabla dinámica con js

@alguienmas cierto, ni de cuenta me dí +1
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 16/05/2013, 06:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 84
Antigüedad: 14 años, 2 meses
Puntos: 1
Pregunta Respuesta: problema mostrar cont. de tabla dinámica con js

Bueno antes que nada muchas gracias por responder! estuve mucho tiempo sin hacer nada y ahora estoy retomando, se me olvidaron mil cosas.

Después de leer sus sugerencias y buscar modifique mi código, sin embargo todavía no logro dar con la solución, a ver que ven ustedes.

Tabla generada dinamicamente:
Código PHP:
    while ($row mysql_fetch_array($result)){
        echo 
"
            <tr name=\"tr_id\">

                <td class=\"contenido\" id=\"titulo_musica\" >"
.limitarPalabras($row['titulo_musica'],20)."</td>
                <td class=\"autor\" name=\"artista_musica\" >"
.$row['artista_musica']."</td>
                <td class=\"id\" id=\"id_musica\" name=\"id_musica\"  >"
.$row['id_musica']."</td>
                                

                <td><button name=\"btnSeleccion\"  onClick=\"procesoXML('/procesoXML.php','id_musica='+getElementById('id_musica').innerText') ; return false\" class=\"btn btn-info\">seleccionar</button></td>
            </tr>"
;
        
$i++;
    } 

Acá lo que hice fue pasarle la url y a la variable id_musica le asigne el valor de la celda.

Función procesoXML

Código:
function procesoXML(_pagina,valorPost){
    capa = document.getElementById('resultado');
    
    ajax=nuevoAjax();
    
    ajax.open("POST", _pagina+"?"+valorPost, true);
    
    ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			capa.innerHTML = ajax.responseText
		}
	}

    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");    
    ajax.send(valorPost);
}
Espero puedan orientarme un poco mas.
Un saludo y muchas gracias por su tiempo!
__________________
Arian

Etiquetas: funcion, js, tabla
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 23:22.