Foros del Web » Programando para Internet » Javascript »

Ejecutar Onclick cuando el usuario lo desee

Estas en el tema de Ejecutar Onclick cuando el usuario lo desee en el foro de Javascript en Foros del Web. Buenos días. Hola a todos, espero puedan ayudarme... estoy agregando filas dinámicamente a una tabla, dentro de una de estas celdas estoy creando un "button", ...
  #1 (permalink)  
Antiguo 15/10/2008, 10:53
 
Fecha de Ingreso: marzo-2008
Mensajes: 33
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Ejecutar Onclick cuando el usuario lo desee

Buenos días.

Hola a todos, espero puedan ayudarme... estoy agregando filas dinámicamente a una tabla, dentro de una de estas celdas estoy creando un "button", en el onclick hago el llamdo a una funcion en la cual envio como parametros el nombre de la tabla y la fila donde se encuentra ubicado....

El inconveniente que se presenta es que agrego la fila pero inmediatamente se ejecuta el llamamiento a la función... pongo el código donde creo el botón

Código PHP:
var tbody =document.getElementById(tabla).getElementsByTagName("TBODY")[0];
var 
row document.createElement("TR")
...
var 
td6 document.createElement("TD")     
var 
cb document.createElement('button');
      
cb.style.width  24
      
cb.style.height 24;
      
cb.value        '<img src="imagenes/icons/table_delete.png" alt="Quitar" width="16" height="16" />';
      [
B]cb.onclick      "quitar_fila('tregistros',"+tbody.rows.length+")";[/B]
      
td6.appendChild(cb);
....
row.appendChild(td6);
tbody.appendChild(row); 
y esta es la función que debe borrar la fila..

Código PHP:
function quitar_fila(tabla,fila)
{
 var 
miTabla document.getElementById(tabla);
 if(
fila>0
 
miTabla.deleteRow(fila);

Agradezco la ayuda que me puedan dar.
  #2 (permalink)  
Antiguo 15/10/2008, 11:00
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Ejecutar Onclick cuando el usuario lo desee

Hola kmics

Prueba a ver si así te funciona:

Código javascript:
Ver original
  1. cb.onclick = function() {quitar_fila('tregistros',tbody.rows.length)}

Saludos,
  #3 (permalink)  
Antiguo 15/10/2008, 11:13
 
Fecha de Ingreso: marzo-2008
Mensajes: 33
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Onclick cuando el usuario lo desee

hola, JavierB

Gracias, pero no me funciona, me muestra un error y toma el total de las filas que hacen parte de la tabla más no la que me intereza quitar... que más puedo hacer?
  #4 (permalink)  
Antiguo 15/10/2008, 17:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 33
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Onclick cuando el usuario lo desee

Hola JavierB.

Bueno luego de tratar y revisar y organizar, pude hacer que el botón esperase a que el usuario lo presionara tal como me lo indicaste.... pero como bien sabes por cada fila se crea un botón, por lo pronto para eliminar esa fila.

El nuevo inconveniente es que no se como enviar la fila en la que estoy presionando el bóton para poder eliminarla.


Gracias.....
  #5 (permalink)  
Antiguo 15/10/2008, 17:58
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: Ejecutar Onclick cuando el usuario lo desee

loading............


Tienes un problema de lo que se llama CLOSURES, busca en el foro ese término y te toparás con la solución.


connection closed...........
__________________

Maborak Technologies
  #6 (permalink)  
Antiguo 15/10/2008, 18:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 33
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Onclick cuando el usuario lo desee

gracias... voy a investigar.....
  #7 (permalink)  
Antiguo 16/10/2008, 17:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 33
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Onclick cuando el usuario lo desee

Bueno la cuestión creo que no se debia a "CLOSURES", para solucionarlo, declare una variable a la cual le asignaba el tamaño de la tabla donde dicho número corresponderá a la fila, y al mometno de crearla queda el número implicito, no se si sería la mejor opción pero funciona les comparto la función.


function agregar_fila(tabla,dat1,dat2,dat3,dat4)
{
if((document.getElementById("text1").value!='')&&
(document.getElementById("text2").value!='')&&
(document.getElementById("text3").value!=''))
{
var tbody = document.getElementById(tabla).getElementsByTagNam e("TBODY")[0];
var row = document.createElement("TR")
var td1 = document.createElement("TD")
td1.name = "t_ids[]";
td1.appendChild(document.createTextNode(dat1))
var td2 = document.createElement("TD")
td2.align = "center";
td2.appendChild (document.createTextNode(tbody.rows.length))
var fil = tbody.rows.length;
var td3 = document.createElement("TD")
td3.appendChild (document.createTextNode(dat2))
var td4 = document.createElement("TD")
td4.appendChild (document.createTextNode(dat3))
var td5 = document.createElement("TD")
td5.name = "t_cant[]";
td5.align = "center";
td5.appendChild (document.createTextNode(dat4))
var td6 = document.createElement("TD")
var cb = document.createElement('button');
cb.style.width = 24;
cb.style.height = 24;
cb.value = '<img src="imagenes/icons/table_delete.png" alt="Quitar" width="16" height="16" />';
cb.onclick = function() {quitar_fila(tabla,fil)}
td6.appendChild(cb);
limpiar_toros();

row.appendChild(td1);
row.appendChild(td2);
row.appendChild(td3);
row.appendChild(td4);
row.appendChild(td5);
row.appendChild(td6);
tbody.appendChild(row);
}
else
{alert('Debe ingresar un registro valido');}
}



Ahora diganme si las asignaciones que estoy haciendo y que resalto en negrilla son posibles o de que manera se podría trabajar?

La intención es que al momento de guardar se tome fila por fila y se inserte en una tabla...


PD: disculpenmen, no lo encierro en etiquetas para poder hacer referencia a las negrillas.


GRACIAS!!!!
  #8 (permalink)  
Antiguo 16/10/2008, 19:13
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Ejecutar Onclick cuando el usuario lo desee

no pues si, es mucho mejor... aun que tambien pudiste poner unos comentario y seria mas fácil de leer ese código jaja...

Bueno, de cualquier modo lo has puesto. Quizá a mas de uno le sirva...

Saludos.
__________________
twitter: @imbuzu
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 17:05.