Programación Web y Scripting > JavaScript
Llamada metodo desde boton
Thanatos-chan:
que tal darupi,
te pondre un ejemplo.
si tomas el metodo que indicas en la primera seccion de codigo "out.print(creaTablaUsuarios.creaTabla());" te va a crear tu tabla dinamica. asi que despues de ejecutado tu donde tienes el "form" queda mas o menos asi:
--- Citar ---
<form action="gestionUsuarios.jsp" method="POST">
//este es el codigo generado por JAVA
<DIV align="center">
<TABLE id="miTabla" cellspacing = "2" CellPadding ="3" Border = "2" With = "100%">
<TR>
<th bgcolor=White></th>
<th bgcolor=White>USUARIO</th>
<th bgcolor=White>CONTRASEÑA</th>
<th bgcolor=White>TIPO</th>
</TR>
<TR>
<TD width="20%"><input type="checkbox" id="caja1" name="caja1" onclick="activaBoton(this)"></TD>
<TD width="25%"><i>"nombre1"</i></TD>"
<TD width="25%"><i>"contrasena1"</i></TD>
<TD width="25%"><i>"tipo1"</i></TD>"
</TR>
</TABLE>
</DIV>
<div align="center">
<input name ="eliminar" type="submit" value="Eliminar" disabled = "disabled">
</div>
</form>
--- Fin de la cita ---
lo primero que debes ver es que segun esta linea del paquete de java
solucion = solucion + "<TD width="20%"><input type="checkbox" id="caja" + i + "" name="caja" + i + "" onclick="activaBoton(this)"></TD>";
tus checkbox se van a llamar caja1,caja2,caja3.
dependiendo de la cantidad de usuarios
lo segundo es que aunque no pusiste la parte de los tags html donde esta el head, por lo que no se ve el el archivo javascript que esta incluyendo, pero me imagino que tendras un archivo javascript el cual esta incluyendo en tu pagina si es que no tienes la funcion en la misma pagina,(si es asi olvida esta parte).
tercero al metodo de java terminar te quedaran N numero de checkbox con el evento onclick=activarboton(this), si te fijas con el evento se dispara on click y el parametro es this lo que significa el valor del objeto actual.
si tenias un checkbox cliqueado y lo descliqueas(el das un click) el parametro que el pasas es false y por eso se deactiva el boton submit que se llama "eliminar"
por lo tanto es poblema de logica.(espero hayas entendido esta parte)
cuarto y lo mas importante:
darupi, estas desarrollando en JSP. la estructura de una aplicacion jsp es mas o menos lo siguiente.
JSP-->SERVLET
una vez tu presionas el boton submit, se estas soltando el control a el servlet para que el maneje lo que sigue.
tu en tu ejemplo tienes que tu form tiene como action="gestionUsuarios.jsp"
segun el esquema de funcionamiento cuando tu haces submit todos tus datos iran a parar a la pagina "gestionusuarios.JSP" y aqui sucedera la magia :lol: es decir cualquier logica o manejo de datos.
quinto:
segun lo que quieres hacer una estructura de funcionamiento seria.
ej:
pagina_principal.jsp //aqui tienes las presentacion, es decir tu tabla de usuarios.
funciones.js /aqui estan tus funciones javascript
gestionusuarios.jsp //donde tienes tu logica de datos, es decir donde revisas si el checkbox esta marcado y mandasa la base de datos a borrar el usuario.
nota: si te preguntas porque le llamo a gestionusuarios.jsp, servlet, es por JAVA convierte en un servlet el codigo que tienes en esa pagina de manera automatica.
nota2: yo me considero un novato en jsp, asi que por mi experiencia para hacer este programa requerieres lo siguiente, poniendo en 1 a un novato y en 10 a un experto.
html=3
java=2
jsp=2
javascript=2
sql=1
si te sientes que no puedes hacerlo, deberias leer un poco,
te recomiendo "jspheadfirst" exelente libro y si no lees ingles, intenta la pagina de eclipse o netbeans, tienes varios manuales.
saludos!!
darupi:
Jejeje. Gracias por todo.
Te comento:
Punto 1 -> Si, por cada usuario que exista en la BD las cajas se van a llamar caja1, caja2, caja3, ... hasta los n usuarios que hay en la BD.
Punto 2 -> Si, el Script esta importado de otra pagina jsp, pero he pensado que no hacia falta ponerlo :p
Punto 3 -> Entonces me sugieres que haga un recorrido de todas las cajas en el script? Desde 1 hasta n? No?
Punto 4 -> Sip, se que cuando hago el submit le mando todo lo que hay dentro del tag <form>...</form> :)
Punto 5 -> En mi caso, tengo todo en la misma página. Explico. Antes de cargar nada de la página compruebo que el request tenga valor. Si existe algun checkBox es porque la lista ya ha sido creada y hay que comprobar que algun checkBox esta activado para eliminar. Una vez eliminados, se hace la carga de la página y se muestra actualizada ;)
Ahora me pondre a mirar cómo hacer para mantener el botón activo si hay uno o mas de un check activo. Si lo consigo pongo el código por aqui. De todas formas sigo sin saber como tirar para adelante :(
Thanatos-chan:
que tal darupi,
lo que sigue es ver si los elemetos de la forma estan llegando hasta el servlet(gestionusuarios.jsp)
y si estan llegando ver como estas manejando los mismo en la pagina gestionusuarios.jsp
favor publica el contenido de l a pagina gestionusuarios.jsp
nota: para evitar que el boton de submit se inactive, solo tienes que hacer un recorrido por todos los checkbox y crear un if donde solo se deshabilite si no existe ningun checkbox marcado.
darupi:
Sip, mira lo que he hecho.
Pongo este código:
--- Código: Text --- <script language="javaScript" type="text/javascript"> function botonEliminar(numeroChecks) { var x; String aux = ""; boolean encontrado = false; var boton = document.getElementById("eliminar"); for(var i = 1; i <= numeroChecks && !encontrado; i++) { aux = "caja" + i; x = document.getElementsByName(aux); if(x.checked == true) { encontrado = true; } } if(encontrado) { boton.disabled = false; } else { boton.disabled = true; } }</script>
Y en la asignación a los checkBox
--- Código: Text --- "<TD width="20%"><input type="checkbox" id="caja" + i + "" name="caja" + i + "" onclick="botonEliminar(2)"></TD>";
Pero es que no entra a la función! :@
darupi:
Mira, el archivo gestionSMS.jsp es este
--- Código: Text --- <%@ page contentType="text/html;charset=windows-1252"%><%@ include file="compruebaSession.jsp" %><%@ include file="imports.jsp" %> <% String campoTipo = request.getParameter("tipoNuevo"); String campoNombre = request.getParameter("usuarioNuevo"); String campoContraseña = request.getParameter("contraseñaNueva"); String x = ""; if(campoNombre != null && campoNombre != "" && campoContraseña != null && campoContraseña != "" && campoTipo != null && campoTipo != "") { if(Integer.parseInt(campoTipo) == 1) x = "Admin"; else x = "Usuario"; insertaUsuario.añadirUsuario(x,campoNombre,campoContraseña); } String combo = ""; String usuario = ""; for(int i = 1; i <= consultaUsuarios.numeroUsuarios(); i++) { combo = request.getParameter("caja" + i); if(combo != null && combo != "") { if (combo.compareTo("on") == 0) { usuario = consultaUsuarios.nombreUsuario(i); borraUsuario.borraElUsuario(usuario); } } }%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/> <title>Usuarios</title> <%@ include file="scriptsGestionUsuarios.jsp" %> </head> <body> <table cellspacing="2" cellpadding="3" border="0" width="100%"> <tr> <td width="33%"> <div align="left"> <form action="gestionUsuarios.jsp"> <input type="image" src="logo_grupo10.gif"/> <font face="Calibri"> <font size="5"> Gestión usuarios </font> </font> </form> </div> </td> <td width="34%"> <div align="right"> <form action="desloguear.jsp" method="POST"> <input type="submit" name="botonLogout" value="Desconectar"/> </form> </div> </td> </tr> </table> <p> </p> <p align="center"> <font face="Calibri" size="4" face="Calibri" size="4"> <b> <u>Listado</u> </b> </font> </p> <form action="gestionUsuarios.jsp" method="POST"> <% out.print(creaTablaUsuarios.creaTabla()); %> <div align="center"> <input name ="eliminar" type="submit" value="Eliminar" disabled = "disabled"> </div> </form> </body></html>
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa