Mandar datos de una página a otra - Javascript

Publicado en 'Programación' por Raise, 8 Jul 2015.





  1. Raise

    Raise Miembro nuevo

    Registro:
    13 May 2014
    Mensajes:
    21
    Likes:
    1




    Buenos días, tengo mi pregunta de la semana.

    Tengo una tabla, me gustaría saber como mandar los datos de página2.jsp a los input text de página1.jsp. usando javascript.

    Código:
    <html>
        <head>
        </head>
        <body>
            <table>
                <tr>
                    <td>
                        Nombres: <input type="text" id="nom" value="" />
                    </td>
                    <td>
                        Apellidos: <input type="text" id="ape" value="" />
                    </td>
                    <td>
                        Edad: <input type="text" id="edad" value="" />
                    </td>
               </tr>
            </table>
        </body>
    </html>

    Código:
    <html>
        <head>
        </head>
        <body>
            <table id="tab">
                <tr>
                    <td>
                        Nombre1
                    </td>
                    <td>
                        Apellido1
                    </td>
                    <td>
                        Edad1
                    </td>
                </tr>
                <tr>
                    <td>
                        Nombre2
                    </td>
                    <td>
                        Apellido2
                    </td>
                    <td>
                        Edad2
                    </td>
                </tr>
            </table>
    <input type="button" value="Restaurar" onclick="restaurar()"
        </body>
    </html>

    Omitan la parte en donde se obtiene la fila que selecciono, eso ya está hecho, solo quiero saber como mandar los datos.

    Gracias y saludos.
     


  2. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    792
    Likes:
    252
    Javascript en html su ejecucion es en el browser por lo que en tu escenario ambas paginas deberían verse al mismo momento ventana del browser (pagina en browser = pagina1, con window.open pagina2 , como si fuera una ventana de tipo prompt), tendrías que usar los elementos DOM del html para tomar por id y pasárselos al html destino (http://www.w3schools.com/jsref/met_doc_getelementbyid.asp).

    Pero si la ejecución de tus paginas tiene un orden caso pagina2.jsp se envía y después aparece pagina1.jsp , entonces lo mejor es que uses formulario en pagina2, captures en request de un servlet , metes la data en un bean y redireccionas y armas pagina1 con los datos del bean.

    Otro escenario seria las dos paginas abiertas y ajax como interface, igual necesitas un servlet y javascript en ambos para manejar la data, es mas complejo.

    Checa primero cual es el orden de ejecución que quieres.
     
  3. Raise

    Raise Miembro nuevo

    Registro:
    13 May 2014
    Mensajes:
    21
    Likes:
    1
    ¿Cómo sería en ese caso?
     
  4. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    792
    Likes:
    252
  5. MPQRS

    MPQRS Miembro frecuente

    Registro:
    28 Jun 2011
    Mensajes:
    219
    Likes:
    21
    que te parece usar localstorage para almacenar los datos temporalmente clave-valor puedes obtener los datos almacenados localmente de cualquier extencion de la misma web.

    localStorage.setItem("Nombre","rolando");
    localStorage.getItem("Nombre") // devuelve como valor rolando como string

    es javascript
     
  6. Raise

    Raise Miembro nuevo

    Registro:
    13 May 2014
    Mensajes:
    21
    Likes:
    1
    Veamos. Si yo hago esto:

    Código:
    function restaurar(){
        var table = document.getElementById("tab");
        location.href = ''pagina1.jsp?n1="+table.rows[0].cells[0].innerText+"&a1="+table.rows[0].cells[1].innerText+
                                "&e1="+table.rows[0].cells[2].innerText
    }

    Y modifico los value de los input de la página 1 de esta forma: <input ... value="<%= request.getParameter("a1") %> manda los datos no?

    Porque ahí tengo una duda, página1.jsp es la principal, por lo que si entro a la web de la forma: localhost/pagina.jsp , es decir, sin parámetros, ¿No me dará error los inputs?

    @MPQRS No me ha dejado, sale que el elemento al que quiero mandar los datos no existe.
     
  7. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    792
    Likes:
    252
    Preferible usar un ID un campo clave , que te permita obtener el resto de datos en vez de pasar todos.
    Prueba ..

    Si llamas a localhost/pagina1.jsp, si te va ha salir error , si no pones condicionales ..

    Por eso revisa bien el orden de llamada que quieres de tus paginas.
    -Cual es la primera pagina que va ha ver el usuario .
    -Que acción es la que va ha hacer el usuario para mostrar la otra pagina de selección.
    -Que datos de esa pagina de selección van ha viajar a la pagina original o a una nueva pagina .

    hazte un diagrama/dibujo como seria el flujo para que sepas como ordenar tu lógica de programación.