Conocer que elementos están contenidos dentro de otro (Duda JSP)

Iniciado por 1mpuls0, 14 Abril 2015, 02:01 AM

0 Miembros y 1 Visitante están viendo este tema.

1mpuls0

Hola.
Tengo lo siguiente


Código (html4strict) [Seleccionar]

<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!
abc

engel lex

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

Código (html4strict) [Seleccionar]
<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)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

1mpuls0

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.

Código (html4strict) [Seleccionar]

<%@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>


Código (java) [Seleccionar]

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.
abc

engel lex

lo siento allí alguien más deberá ayudar, trataba de dar una solución general, de jsp no se absolutamente nada :P

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

1mpuls0

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.
abc

Usuario Invitado

¿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í:

Código (javascript) [Seleccionar]
$("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.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein