Programación Web y Scripting > JavaScript
Llamada metodo desde boton
Thanatos-chan:
que tal darupi,
solo una salvedad
tanto en la pagina donde tienes el primer form y dentro de la pagina gestionsms.jsp donde tienes el mismo form al final el action
de los forms es "gestionUsuarios.jsp"
como ya sabras cuando presionas submit, tanto en tu primera pagina como en la pagina gestionsms.jsp, tu servidor de aplicaciones te redireccionara a la pagina "gestionUsuarios.jsp" por tanto si tu "logica" esta en la pagina "gestionsms.jsp" deberias cambiar el action de los forms.
si tomas como ejemplo en otro forms que tienes, el mismo tiene como action=deslogear.jsp, por tanto cuando hagas click en el boton de deslogear, tu servidor se ira a la pagina deslogear.jsp
terminada la salvedad
intenta probar lo siguiente.
dado que la parte que te interesa es si borrar o no.
lo primero que debes hacer es un debug de la app, utilizando un break point. en tu archivo "gestionSMS.jsp" revisas por los siguientes parametros
String campoTipo = request.getParameter("tipoNuevo");
String campoNombre = request.getParameter("usuarioNuevo");
String campoContraseña = request.getParameter("contraseñaNueva");
pero en ninguna de tus paginas aparecen elementos llamados "tipoNuevo","usuarionuevo","contraseñaNueva" si no los estas usando o planeas usarlos deberias borrar esas lineas.
anexo te pongo un ejemplo del archivo gestionsms.jsp simplificado.
--- Citar ---
<%
String combo = "";
String usuario = "";
for(int i = 1; i <= 2; i++)
{
combo = request.getParameter("caja" + i);
if(combo != null && combo != "")
{
if (combo.compareTo("on") == 0)
{
out.print("el parametro del check es pasado correctamente");
}
}
}
%>
--- Fin de la cita ---
crea un nuevo proyecto y copia el contenido del archivo gestionsms.jsp simplicado nombrandolo gestionprueba.jsp
a continuacion crea otro archivo, principal.jsp
y pon el siguiente codigo
--- Citar ---
<html>
<head>
<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>
</head>
<body>
<form action="gestionprueba.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>
</body>
</html>
--- Fin de la cita ---
tu objetivo es verificar si el parametro del checkbox es pasado correctamente, si es correcto y estas recibiendo los parametros
solo necesitaras concentrarte en esta parte de tu codigo
--- Citar ---
if (combo.compareTo("on") == 0)
{
usuario = consultaUsuarios.nombreUsuario(i);
borraUsuario.borraElUsuario(usuario);
}
--- Fin de la cita ---
intenta probar el if sin el metodo compareto, es decir: if(combo==0) que seria si el combo esta desmarcado
nota: la parte que dices que no entra a la funcion
veo un numero 2 en la funcion como parametro... :unsure:
espero te sea de ayuda.
saludos!!
darupi:
Gracias.
Si, se que he puesto un 2 fijo, que mas tarde cambiare por el numero total de usuarios mediante una consulta a la BD, pero era para probar.
Esta noche me pongo a probarlo que yo creo que hoy me he portado bastante bien ya jajaja.
Ya te contare!
Gracias por las molestias!
Thanatos-chan:
suerte!
darupi:
Mmm te comento algo que he estado mirando:
1- Lo del action tienes razón, ha sido fallo mio, en todos estaba ya puesto "gestionUsuarios.jsp", lo que pasa que he copiado mal.
2- Lo de estos 3 campos es de otra cosa que funciona correctamente, pero que no habia explicado porque va bien :p
--- Código: Text --- String campoTipo = request.getParameter("tipoNuevo");String campoNombre = request.getParameter("usuarioNuevo");String campoContraseña = request.getParameter("contraseñaNueva");
3- El problema es que no entiendo el porque cuando defino los checbox y les asigno el metodo botonEliminar(numeroChecks) no entra a comprobarlo. Mira que le estoy dando vueltas, pero es que no entra dentro del script si quiera.
darupi:
Mira, he hecho un resumen de lo que quiero hacer en esta pagina:
KGD.jsp
--- Código: Text --- <html> <head> <script language="javaScript" type="text/javascript"> function botonEliminar(numeroChecks) { alert("Dentro"); var x; boolean encontrado = false; var boton = document.getElementById("eliminar"); for(var i = 1; i <= numeroChecks && !encontrado; i++) { x = document.getElementById("caja" + i); if(x.checked == true) { encontrado = true; } } if(encontrado) { boton.disabled = false; } else { boton.disabled = true; } } </script> </head> <body> <form action="KGD.jsp" method="POST"> <DIV align="center"> <TABLE id="miTabla" cellspacing = "2" CellPadding ="3" Border = "2"> <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="botonEliminar(2)"></TD> <TD width="25%"><i>nombre1</i></TD> <TD width="25%"><i>contrasena1</i></TD> <TD width="25%"><i>tipo1</i></TD> </TR> <TR> <TD width="20%"><input type="checkbox" id="caja2" name="caja2" onchange="javascript: botonEliminar(2);"></TD> <TD width="25%"><i>nombre2</i></TD> <TD width="25%"><i>contrasena2</i></TD> <TD width="25%"><i>tipo2</i></TD> </TR> </TABLE> </DIV> <div align="center"> <input id = "eliminar" name ="eliminar" type="submit" value="Eliminar" disabled = "disabled"> </div> </form> </body></html>
En la asignacion del onclick pongo esto: onclick="botonEliminar(2)" porque son 2 filas (ahora lo pongo a mano para probar).
Pero seguro que si lo probais no se activa el boton de eliminar aunque le deis a cualquier checkbox :(
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa