Hola.
Tengo lo siguiente
<form action="save.jsp" method="post">
<div id="div1">
<input type="text" name="input1" id="input1" />
<input type="text" name="input2" id="input2" />
</div>
<div id="div2">
<input type="text" name="input3" id="input3" />
<input type="text" name="input4" id="input4" />
</div>
</form>
Necesito guardar los elementos de div1 en una tabla de mysql A y los elementos del div2 en una tabla B.
Hay forma de identificar en save.jsp que elementos se encuentran en div1 y div2 para guardar en sus correspondientes?
Alguien conoce las formas de hacerlo?.
Gracias!
cuando se pasa la respuesta, no se pasa el html, solo los input con nombre y valor, yo recomendaría que con js le modificaras el nombredejando algo como
<form action="save.jsp" method="post">
<div id="div1">
<input type="text" name="input1;div1" id="input1" />
<input type="text" name="input2;div1" id="input2" />
</div>
<div id="div2">
<input type="text" name="input3;div2" id="input3" />
<input type="text" name="input4;div2" id="input4" />
</div>
</form>
para que puedas modificarlos dinamicamente (en el jscript o en el jsp solo tienes que partirlos por ; para indentificarlos)
Gracias por responder.
Olvidé mencionar que estoy utilizando beans :xD y tengo que utilizar el nombre del campo de la base de datos en el valor name del input.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="inf" class="models.beans.Aplicacion" scope="application" />
<jsp:useBean id="consulta" class="com.dao.Consultas" scope="application" />
<jsp:setProperty name="inf" property="*" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Registrando..</title>
</head>
<body>
<%
consulta.insertarApp(inf);
response.setHeader("Refresh", "1;url=index.jsp");
%>
<div align="center">
Se registró correctamente
</div>
</body>
</html>
public void insertarApp(InformacionApp inf) throws SQLException {
String consulta ="INSERT INTO A(div1, div2) VALUES(?, ?)";
PreparedStatement guardaDatos = c.prepareStatement(consulta);
guardaDatos.setString(1, inf.getValorDiv1());
guardaDatos.setString(2, inf.getValorDiv2());
guardaDatos.executeUpdate();
}
Lo que mencionas aun así me funciona con la estructura que ya tengo?.
Porque necesitaría regresar al nombre original del input una vez identificado en el jsp.
lo siento allí alguien más deberá ayudar, trataba de dar una solución general, de jsp no se absolutamente nada :P
Agradezco tu ayuda.
Lo que no quiero es tomar cada uno de los valores con request.getParameter porque son muchos (25 campos) pero si no hay otra forma lo tendré que hacer así.
Seguiré buscando alguna forma y si la encuentro lo comparto.
Saludos.
¿Por qué no creas un Servlet, serializas los datos del formulario y lo envías mediante AJAX, y desde aquí injectas el DAO (si es un EJB) para que haga el insert?
Ya que los datos se enviarían por JSON, solo necesitarías una librería para transformar el stringify en JSON. El envío sería así:
$("form").on("submit", function(e) {
e.preventDefault();
var data = $(this).serializeArray();
$.ajax({
method: "POST",
url: "LoginController",
data: JSON.stringify(data);
})
.done(function(msg) {
})
.fail(function(jqXHR, textStatus) {
});
}, true);
En el servlet, solo deberías convertir ese JSON en texto a un JSON o a un Map. Puedes usar GSON, por ejemplo.
Saludos.