Foros del Web » Programando para Internet » Javascript »

saber en cual celda hizo click

Estas en el tema de saber en cual celda hizo click en el foro de Javascript en Foros del Web. Hola estoy intentando hacer que dibujen un croquis, para esto tengo una tabla con celdas que al dar click se cambia de color, y simula ...
  #1 (permalink)  
Antiguo 21/10/2003, 12:51
Avatar de zink  
Fecha de Ingreso: mayo-2002
Ubicación: Aguascalientes
Mensajes: 125
Antigüedad: 22 años
Puntos: 0
saber en cual celda hizo click

Hola estoy intentando hacer que dibujen un croquis, para esto tengo una tabla con celdas que al dar click se cambia de color, y simula dibujar el area de un lote o casa en una cuadra.

para cambiar el color de la celda lo hago así:
<td style="background-color: 'white'" onclick="this.style.backgroundColor = (this.style.backgroundColor == 'white') ? 'gray' : 'white'"></td>

mi pregunta es: ¿como hago que esos valores o celdas "pintadas" se guarden en la BD.? Habia pensado en poner oculto en cada celda un checkbox, y recoger esos valors, pero no se si estoy en lo correcto o si me puedan dar alguna idea de como hacerlo.

Estoy medio perdido por que no se si se puede ocultar un checkbox ya que en el type="checkbox" como le digo que sea "hidden"?
o no se si se pueda seguir utilizando el "onclick" para llamar una funcion?

Gracias.
  #2 (permalink)  
Antiguo 21/10/2003, 13:04
Avatar de pablinweb  
Fecha de Ingreso: julio-2003
Mensajes: 283
Antigüedad: 20 años, 9 meses
Puntos: 0
no puedes ocultar un checbox pero si un textbox, tambien puedes agragar las funciones que quieras en el on click, solo pon una coma donde termina la anterior y las dobles comillas al final de la ultima. de esta manera podrias cambiar el valor del text box
  #3 (permalink)  
Antiguo 21/10/2003, 13:26
Avatar de Don Graff  
Fecha de Ingreso: noviembre-2002
Ubicación: San Bernardo - Chile
Mensajes: 410
Antigüedad: 21 años, 5 meses
Puntos: 0
en todo lo que han dicho no hay ni pizca de asp...
__________________
:cool: Visita Zona Powers :cool:
  #4 (permalink)  
Antiguo 21/10/2003, 13:44
Avatar de zink  
Fecha de Ingreso: mayo-2002
Ubicación: Aguascalientes
Mensajes: 125
Antigüedad: 22 años
Puntos: 0
jejeje sorry, muy cierto, de hecho dudé en donde ponerlo, si en html, en javascript o aqui....supuse que deberia ir aqui por que mi principal duda es como mandar lo que el usuario conteste a la BD.

si algun moderador me hace favor de cambiarlo al foro adecuado se lo agradeceré.


pablinweb:
Gracias por responder, voy a probar con lo que me dices.
  #5 (permalink)  
Antiguo 21/10/2003, 13:51
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
bueno.. ya que lo piden: movido desde ASP

:D
__________________
...___...
  #6 (permalink)  
Antiguo 21/10/2003, 14:03
 
Fecha de Ingreso: septiembre-2003
Mensajes: 128
Antigüedad: 20 años, 8 meses
Puntos: 0
Lo puedes hacer al estilo hotmail o yahoo que marcas las celdas y borra las clickeadas.

El formulario lo armas asi:

response.write("<input type=""checkbox"" name=""celda"" value=""celda_"&n_nro_celda&""">")

vas incrementando n_nro_celda, y dado un numero sabes a que celda pertenece, por que sabes como armaste la tabla.

----------

ASP: para recibirlo:

a_array=split(request.form("celda"),",")
n_total=ubound(a_array)


En n_total tenes el tamaño del arreglo, solo llegan las celdas clickeadas. El arreglo lo tenes asi:

a_array="celda_2"
a_array="celda_5"
....

Esas celdas fueron clickeadas, ahora lo podes guardar en una tabla.

Espero haberme explicado.

Saludos, Daniel.
  #7 (permalink)  
Antiguo 21/10/2003, 14:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 128
Antigüedad: 20 años, 8 meses
Puntos: 0
Moderador, si puedes devolvelo a el foro de ASP. Los muchachos se apuraron.
  #8 (permalink)  
Antiguo 05/11/2003, 21:00
Avatar de zink  
Fecha de Ingreso: mayo-2002
Ubicación: Aguascalientes
Mensajes: 125
Antigüedad: 22 años
Puntos: 0
Gracias por responder Dadu, y perdon por no responder antes.

Desafortunadamente no entiendo como puedo hacer que un elemento como checkbox este oculto...... lo intenté con un input type="text" que esté oculto y con value="0" al hacer click se le cambie el valor a 1.

O de que otra forma lo puedo hacer? :(

Gracias
  #9 (permalink)  
Antiguo 06/11/2003, 10:36
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Bueno, en la parte cliente te puedo ayudar, y en servidor al recoger los datos puedes usar la propuesta de DADU.

Suponiendo que tienes una tabla con x filas y n columnas yá creada y de id="tablita"


<SCRIPT LANGUAGE="JavaScript">
var valores = new Array()
function asigna(){
for(m=0;m<document.getElementById('tablita').getEl ementsByTagName('td').length;m++){
document.getElementsByTagName('td')[m].id='T'+m
document.getElementsByTagName('td')[m].style.backgroundColor = 'white'
document.getElementsByTagName('td')[m].onclick=function(){
colorea(this.id)
}
valores[m] = false
}
}
function colorea(cual){
celda = document.getElementById(cual).style.backgroundColo r
celda == 'white' ? document.getElementById(cual).style.backgroundColo r = 'gray' : document.getElementById(cual).style.backgroundColo r = 'white'
valores[cual.substr(1)] = celda == 'white' ? true : false
document.forms[0].Valores.value = valores
}
</script>

En body le pones.....

<body onload="asigna()">

Luego pones tu tabla con las celdas que te dé la gana. No hace falta que le des id's a las celdas, ni onclicks ni nada, sólo dale por id a tu tabla "tablita"

<table width="100%" border="1" id="tablita">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

Finalmente el formulario desde el cual se enviarán los datos para guardarlos en la base de datos

<form action="loquesea.asp" method="post">
<input name="Valores" type="hidden" value="">
</form>

Cuando se envíe, a la página que los recoja le pides que te guarde el valor de Valores en alguna variable


<%
Valores = split(request.form("Valores"),",")
%>

Y está listo para enviarlo a la BD referenciando cada valor por su posición dentro del array

pepe = Valores(posicion)

Los valores se guardan como true o false; true indica que la celda fué seleccionada y false indica que no lo fue


a ver si te sirve....

Última edición por tunait; 06/11/2003 a las 10:38
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 15:07.