Foros del Web » Programando para Internet » Javascript »

Insertar y recuperar datos en el mismo formulario dinamicamente.

Estas en el tema de Insertar y recuperar datos en el mismo formulario dinamicamente. en el foro de Javascript en Foros del Web. Hola, por favor me podeis decir si se puede al mismo tiempo insertar datos y recuperarlos en el mismo formulario con datos dinámicos. Gracias y ...
  #1 (permalink)  
Antiguo 11/12/2012, 16:16
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Insertar y recuperar datos en el mismo formulario dinamicamente.

Hola, por favor me podeis decir si se puede al mismo tiempo insertar datos y recuperarlos en el mismo formulario con datos dinámicos.
Gracias y un saludo
  #2 (permalink)  
Antiguo 12/12/2012, 04:09
Avatar de rosonator  
Fecha de Ingreso: noviembre-2012
Ubicación: Bilbao
Mensajes: 49
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Claro que se puede

SET
document.GetElementById('id').value = "tararí"

GET
var valorInput = document.GetElementById('id').value

supongo que querrás enlazarlos a eventos por lo que esto irá dentro de funciones que a su vez serán llamadas por atributos OnClick, OnChange, OnMouseOver,etc. en tus botones, textfields, etc.
  #3 (permalink)  
Antiguo 12/12/2012, 04:33
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Buenos dias, gracias por contestar. Mira es que tengo una página donde tengo tres formularios, y quiero mandarlos a la vez al pulsar un botón. Pero claro los tres formularios van cada uno a tablas diferentes.Y luego hacer la recuperación de dichos datos despues de hacer los respectivos insert. Se puede hacer, tienes algún ejemplo?
Gracias y un saludo
  #4 (permalink)  
Antiguo 12/12/2012, 05:30
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Cita:
Iniciado por rosonator Ver Mensaje
Claro que se puede

SET
document.GetElementById('id').value = "tararí"

GET
var valorInput = document.GetElementById('id').value

supongo que querrás enlazarlos a eventos por lo que esto irá dentro de funciones que a su vez serán llamadas por atributos OnClick, OnChange, OnMouseOver,etc. en tus botones, textfields, etc.
He encontrado esto. Que os parece?
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title></title>
<
script>
function 
enviarForms(){
    if(
document.forms.length>1){
        var 
ifr='<iframe name="pp" width="1" height="1" style="visibility:hidden"></iframe>';
        
document.getElementsByTagName('body')[0].innerHTML+=ifr;
        for(var 
i=0;i<document.forms.length-1;i++){
            
document.forms[i].target='pp';
            
document.forms[i].submit();
        }
        
    }
    
document.forms[document.forms.length-1].submit();
}
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="test.php">
</form>
<form id="form2" name="form2" method="post" action="http://www.yahoo.com">
</form><br />
<a href="javascript:enviarForms()">enviar</a>
</body>
</html> 
  #5 (permalink)  
Antiguo 12/12/2012, 05:54
Avatar de rosonator  
Fecha de Ingreso: noviembre-2012
Ubicación: Bilbao
Mensajes: 49
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Está usando iframes para poder validar más de un formulario. Por defecto un formulario provoca la recarga de una página y la carga de las variabels globales $_POST o $_GET. Sin embargo, yo creo que lo mejor que puedes hacer es una "validación" propia en javascript.

Quieres que los datos se carguen en una tabla de esa misma página, por lo que símplemente se trata de que el botón de cada formulario en realidad no haga un submit, sino que llame a una función, pongamos que así:
Código:
<form id="formu1">
...
  <input type="text" value="xxxx">
  <input type="button" onClick="submitFormu(1)"
</form>

<form id="formu2">...
...
...
Tu tabla será algo así, supongo:

Código:
<table id="tabla1">
</table>
<table id="table2...
...
Y por último, a través de javascript, harás algo así


Código:
submitFormu(numForm){

 if (numForm==1) {
    document.getElementById('tabla1').innerHTML ="<tr><td>"+ document.GetElementById('id').value + "</td></tr>";
 else if (numForm==2) {
...
...

}
En este código creas dinámicamente filas. Si no es eso lo que te interesa, sino que tienes una estructura de tabla ya fija, pues pones un ID a cada celda y las accedes igual que yo he accedido la tabla.


Eso es todo, haces una validación dinámica y no recargas nada. No necesitas meterte en guirigays raros ni nada. Pues incluso validar la entrada en función a expresiones regulares, para que no te entren datos malos, por ejemplo.

Por supuesto, lo que he escrito no estará exento de tener errores, pero la idea es que pilles el concepto.

Un saludo,

Alex.
  #6 (permalink)  
Antiguo 12/12/2012, 07:17
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Cita:
Iniciado por rosonator Ver Mensaje
Está usando iframes para poder validar más de un formulario. Por defecto un formulario provoca la recarga de una página y la carga de las variabels globales $_POST o $_GET. Sin embargo, yo creo que lo mejor que puedes hacer es una "validación" propia en javascript.

Quieres que los datos se carguen en una tabla de esa misma página, por lo que símplemente se trata de que el botón de cada formulario en realidad no haga un submit, sino que llame a una función, pongamos que así:
Código:
<form id="formu1">
...
  <input type="text" value="xxxx">
  <input type="button" onClick="submitFormu(1)"
</form>

<form id="formu2">...
...
...
Tu tabla será algo así, supongo:

Código:
<table id="tabla1">
</table>
<table id="table2...
...
Y por último, a través de javascript, harás algo así


Código:
submitFormu(numForm){

 if (numForm==1) {
    document.getElementById('tabla1').innerHTML ="<tr><td>"+ document.GetElementById('id').value + "</td></tr>";
 else if (numForm==2) {
...
...

}
En este código creas dinámicamente filas. Si no es eso lo que te interesa, sino que tienes una estructura de tabla ya fija, pues pones un ID a cada celda y las accedes igual que yo he accedido la tabla.


Eso es todo, haces una validación dinámica y no recargas nada. No necesitas meterte en guirigays raros ni nada. Pues incluso validar la entrada en función a expresiones regulares, para que no te entren datos malos, por ejemplo.

Por supuesto, lo que he escrito no estará exento de tener errores, pero la idea es que pilles el concepto.

Un saludo,

Alex.
Alex, con lo de las tablas quería decir tablas en la base de datos. Es decir que tengo:
tabla llamada usuarios:

nombre
telefono
NUM_USUARIO

tabla llamada dir_usuarios:

calle
localidad
NUM_USUARIO

tabla llamada avisos:

tecnico
averia
NUM_USUARIO



Entonces, en la página tengo estos tres formularios. El problema es que primero tengo que hacer el primer insert de la tabla usuarios para que me cree en la base de datos el NUM_USUARIO. Y luego recuperar dicho NUM_USUARIO para ingresarlo en las demas tablas. Esto es para luego a la hora de hacer la recuperación de datos tener como referencia el NUM_USUARIO. No se si lo estoy haciendo bien, pero la verdad es que he pensado que se podía hacer mas rapido haciendo los tres insert a la vez. No se si me he explicado bien.
Un saludo
  #7 (permalink)  
Antiguo 12/12/2012, 09:04
Avatar de rosonator  
Fecha de Ingreso: noviembre-2012
Ubicación: Bilbao
Mensajes: 49
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Joer, la pregunta ha cambiado mucho, es la primera vez que nombras una Base de Datos, y eso cambia bastante todo, dado que Javascript es lenguaje cliente y no es tan sencillo lograr ejecutar una query SQL.

Para empezar tengo dudas de por qué necesitas 3 tablas y me gustaría que te plantearas lo siguiente: ¿La primera y la segunda no podrían ser una única? ¿Es más, no podría ir todo en una sola tabla?

Segundo, lo más fácil de todo es que te dejes de líos y lo mandes todo a través del submit de un único formulario. ¿Por qué no podrías hacer esto? Luego en la siguiente página haces las querys SQL en el orden que te parezca y sobre las tablas que quieras..
  #8 (permalink)  
Antiguo 12/12/2012, 09:17
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Cita:
Iniciado por rosonator Ver Mensaje
Segundo, lo más fácil de todo es que te dejes de líos y lo mandes todo a través del submit de un único formulario. ¿Por qué no podrías hacer esto? Luego en la siguiente página haces las querys SQL en el orden que te parezca y sobre las tablas que quieras..
Claro, precisamente eso es lo que quiero hacer. Pero así tendría que meter todo en una sola tabla. Que ventajas tengo al tenerlas en tablas separadas, porque se hace así?. Porque así luego puedo hacer muchas mas cosas como estadisticas, etc........no?
  #9 (permalink)  
Antiguo 12/12/2012, 13:53
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Por favor, alguna opinión?
  #10 (permalink)  
Antiguo 13/12/2012, 17:06
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Por favor, a lo mejor en php me pueden ayudar, podría ser que me contestaran allí?
Gracias.
  #11 (permalink)  
Antiguo 14/12/2012, 04:08
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Si pretendes hacer 3 operaciones de inserción en una misma query, no es probable, al menos, con querys estándar en mysql. Para recuperar el num_usuario de una consulta, siempre que sea la columna id o alguna otra que se incremente en esa inserción, basta con usar mysql_insert_id

Código PHP:
Ver original
  1. mysql_query("INSERT ...");
  2. $last_id = mysql_insert_id();
  3.  
  4. mysql_query("INSERT INTO tabla2 (a,b,c) VALUES('blabla',$last_id,'blablabla2')");
  5. mysql_query("INSERT INTO tabla3 (a,b,c) VALUES('blabla',$last_id,'blablabla2')");

Para recuperar e insertar otros datos se puede usar una consulta INSERT ... SELECT

Código PHP:
Ver original
  1. mysql_query("INSERT INTO tabla2 (a) VALUES('ejemplo') SELECT tabla1 WHERE tabla1.userid=234");

En que se insertaría en tabla2 la columna a que corresponde con el registro en la tabla1 cuyo userid sea 234.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 14/12/2012 a las 04:24
  #12 (permalink)  
Antiguo 14/12/2012, 09:48
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Insertar y recuperar datos en el mismo formulario dinamicamente.

Cita:
Iniciado por dontexplain Ver Mensaje
Si pretendes hacer 3 operaciones de inserción en una misma query, no es probable, al menos, con querys estándar en mysql. Para recuperar el num_usuario de una consulta, siempre que sea la columna id o alguna otra que se incremente en esa inserción, basta con usar mysql_insert_id

Código PHP:
Ver original
  1. mysql_query("INSERT ...");
  2. $last_id = mysql_insert_id();
  3.  
  4. mysql_query("INSERT INTO tabla2 (a,b,c) VALUES('blabla',$last_id,'blablabla2')");
  5. mysql_query("INSERT INTO tabla3 (a,b,c) VALUES('blabla',$last_id,'blablabla2')");

Para recuperar e insertar otros datos se puede usar una consulta INSERT ... SELECT

Código PHP:
Ver original
  1. mysql_query("INSERT INTO tabla2 (a) VALUES('ejemplo') SELECT tabla1 WHERE tabla1.userid=234");

En que se insertaría en tabla2 la columna a que corresponde con el registro en la tabla1 cuyo userid sea 234.

Un saludo.
OK, sobre todo muchas gracias por contestar, no solo a ti sino a todos los que podeis contestar a los que no sabemos mucho de estos temas. Bueno, como ya he comentado tengo varias tablas en la base de datos y por eso lo que hago es en la primera tabla llamada usuarios es un insert con los campos nombre,apellidos etc..., en esa misma pantalla recupero los datos con un campo AUTOINCREMENT para que me saque el NUM_USUARIO (este es el dato que pienso que es culpable de alargar el proceso no?). En esa misma pantalla tengo un botón que me manda a una segunda pantalla tomando como referencia el NUM_USUARIO en la que vuelvo a hacer otro insert en la tabla dir_usuarios con datos como calle,localidad etc..., y tambien vuelvo a recuperarlos. Y luego hago otra vez el proceso con la tercera tabla llamada avisos . No se si lo estoy haciendo bien o se puede acortar el proceso. Si no entendeis lo que explico por favor no dudeis en preguntarme. Muchas gracias y un saludo

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.