entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Actualizar un campo de un formulario sin tener que enviar el formulario

Hola:

Estoy desarrollando un motor de reservas y tengo una duda:

Tengo 4 campos: 2 date (fecha salida y fecha llegada) y 2 de hora (hora de llegada y de salida), mi duda es la siguiente.

Quiero que esos 4 campos, cuando el usuario los modifique, se guarden automáticamente (sin tener que enviar al formulario) y que hacen cualquier cambio en la pagina (ir hacia atrás en el navegador y cosas así) esta siga estando almacenado.

Un saludo

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola carlos_gude_tsubasa,

si lo que querés es que los 4 campos se guarden en el servidor, puer la única forma de hacerlo es enviando los valores hasta ahí.

Podrías dar la sensación de que no se envían, haciendo por ejemplo que en el onchange de cada campo se envíe ese dato al servidor vía una llamada asincrónica en JavaScript (AJAX). Bastará luego que al cargar la página se lean esos datos para ponerlos a la vista de nuevo, pero ya debés estar haciendo algo así.

Si en cambio lo querés almacenar en el navegador, podrías usar el LocalStorage vía JavaScript. Lo que tiene esto es que los datos quedan en la PC y si el mismo usuario usa otra computadora verá otros datos...

Saludos!

0voto

carlos_gude_tsubasa comentado

Si no es mucho pedir, ¿Me podrías pasar un ejemplo del código?

Actualziación: Movido a comentario

0voto

carlos_gude_tsubasa comentado

Si no es mucho pedir, ¿Me podrías pasar un ejemplo del código? la versión que mas me gusta es la de Ajax con el onchange

0voto

Leonardo-Tadei comentado

Podría ser así:

<?php
/*
* @Prometeus Technology, a subsidiary of Pegasus Tech Supply
* @copyright Copyright (C) 2013 Leonardo Tadei. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see gpl-3.0.txt
* Etiqueta de Formulario is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
?>
<!DOCTYPE html>
<html>
<head>
<title>Etiqueta de Formulario</title>
<meta name="generator" content="Bluefish 2.2.3" />
<meta name="author" content="leo" />
<meta name="date" content="2014-05-15T20:56:15-0300" />
<meta name="copyright" content=""/>
<script type="text/javascript" >
// crea el ambiente JS para recibir la respuesta dinámica
function Conectar(){
    if (window.XMLHttpRequest){
        return new XMLHttpRequest()
    } else {
        var xmlHttp = false;
        try {
            return new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e) {
            try {
            return ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) {
                xmlHttp = false;
            }
        } // try
    } // else
} // Conectar()
var xmlHttp = Conectar();

function actualizar(t){
    var campo = t.name;
    var valor = t.value;

    console.log('Enviando campo:'+campo+' valor:'+valor);
    // Acá va el URL del script PHP que tenés que crear para recibir la petición
    var url = 'actualizar.php?campo='+escape(campo)+'&valor='+escape(valor);
    xmlHttp.open("GET", url);

    xmlHttp.onreadystatechange = function() {
//alert('entra f() '+url);
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
            console.log('Actualizado campo:'+campo+' valor:'+valor);
        }
    }
    // Envía la petición
    xmlHttp.send(null);
}
</script>
</head>
<body>
<form name="ff" id="ff" action="?" method="post">
<input type="text" name="fecha1" value="15/05/2014" onchange="actualizar(this);" />
</form>
<hr />
</body>
</html>

Luego tendrías que escribir el script actualizar.php que recibirá por GET el campo y su valor, y guardar esto en la DB.

Saludos!

PD: por favor, poné los comentarios a las respuestas como comentarios y no como otras respuestas. Aparecen si no respuestas inexistentes. Si por error hacés algo así, al editar la respuesta la podés convertir en comentario.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta