Hola alguno de uds saben como manejar formularios con php que al enviar los datos los mismos se guardan en sesiones para luego ser reunidos y insertados en la base de datos?
salu2
| ||||
cluster es experto en sesiones siempre aconseja trabajar con sesiones en formularios puesto que es mejor y efectivo como el lo dice.
__________________ Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil Hoteldipity Arte Caracol |
| ||||
Mi sugerencia es que vayas guardando los resultados en una ariable de sesión. Mas o menos así: $_SESSION["generales"]=$_POST; y en la siguiente página: $_SESSION["domicilio"]=$_POST; Y así continúas hasta completar todos los formularios relacionados. Al final puedes extraer los datos mas o menos así: $generales=$_SESSION["generales"]; $domicilio=$_SESSION["domicilio"]; De tal forma que puedas usarlos así: echo "Tu nombre es: ".$generales["nombre"]." ".$generales["apellido"]; echo "Y vives en : ".$domicilio["calle"]." ".$domicilio["numero"]; Espero que quede claro el concepto. ![]() Salud!!
__________________ Manoloweb |
| ||||
![]() La cuestion manolo es que tengo 320 campos en la tabla y pues hablando con cluster la otra vez me recomendo utilizar sesiones, lo que yo te entiendo es que del formulario 1, agarre todas las variables y las procese en el formulario 2 y asi en el 3 y en el 4 que es el final en mi diseño hay si extraigo todas esas variables y las inserto en mi consulta sql. no sé si estaré haciendo lo correcto ![]() |
| |||
En tus formularios que vas creando hasta llegar al final del proceso donde recogeras esos "300" campos que has ido generando en tus X formularios ... puedes ir recogiendo el array POST o GET (según el method que uses en tus formularios) para no tener que saber los nombres de los campos. Sólo lo harás al final de tu proceso para la validación final de tus variables y el proceso en sí que le des (a tu BD o donde destines esos datos). Ejemplo: proces_form1.php Código PHP: Código PHP: $variables=$_SESSION['variables'] y trabajarlo como un array de una dimesión normal .. $variables['nombrevariable'] .. o aplicar un list() each() para dejartelo como $nombrevariables o como mas te acomode trabajar todo ese montón de variables. Al viajar todas tus variables en un array .. te facilitará hacer validaciones tipo "campos requeridos" en tu script final de proceso donde puedes usar funciones como in_array() para checkear los campos requeridos .. o bucles foreach() aplicados a ese array para validar todas o grupos de variables si cumplen alguna condición (ejemplo: is_numeric() .. por si han de ser digitos .. o más complejo aplicar expresiones regulares si llega el caso). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
![]() Ok cluster ya hice el paso de todos los campos entre paginas mediantes sesiones, pero en la ultima pagina que es la que inserta en la bd yo quiero extraer todos los campos de ese array e insertarlo en la base de datos. tendria que hacer un extract post de la sesion variable? Código PHP: Error en consulta MySQL dice: Unknown column 'Array' in 'field list' tengo q extraer ese array pero no se como ![]() salu2 Última edición por andinistas; 16/02/2004 a las 10:19 |
| |||
Te sucede por qué .. $_SESSION es un array si, es cierto ..pero a su vez puede llevar variables de todo tipo .. por ejemplo otros arrays .. como es el caso. Si usas extrac() para dejar tus variabels como globales $variable .. debes aplicarlo a: Código PHP: Código PHP: A todo esto . .¿validas tus datos? .. si pretendes ir recogiendo todo lo que viaje en los formularios y no validar nada por ahorrarte unas líneas de código en tu INSERT .. tienes que tener muchoooo cuidado. VALIDA siempre los datos. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Bueno, ya estas cerca del final. Solo recuerda que los datos dentro de $_SESSION['variables'] se encuentran en un array (Campo => Valor). En caso de que tus campos del formulario coincidan exactamente con los de tu tabla en la base de datos, puedes hacer un recorrido por cada registro para convertirlo a una instrucción correcta de SQL... Primero debes decidir si los valores que se van a insertar tienen todos el mismo formato (Por ejemplo son todos TEXTOS, o todos NUMEROS), o si deberás hacer alguna separación entre los que tienen un valor numérico y los que tienen cadenas. Si el caso es cualquiera de los dos primeros (todos de un mismo tipo) la cosa se facilita, pues algo así te funcionaría: Código PHP: Código PHP: Algo así como: Código PHP: Bueno, eso debe darte una idea... ![]()
__________________ Manoloweb |
| ||||
![]() Clusteer la validación de datos ya la tengo preestablecida por javascript, ahora tengo un error en el extract que me dice: Fatal error: Call to undefined function: extrac() in /var/www/html/retornos/send1.php on line 24 ok pero te explico mejor mi form de 4 partes. parte1.php tengo el form que envia por post al parte2.php en parte2.php tengo Código PHP: Código PHP: Código PHP: Código PHP: bueno con este ultimo file send1.php queria comprobar si todos los campos estan viajando pero me da ese error en el extract? hay otra forma de extraer esos valores del array? Última edición por andinistas; 16/02/2004 a las 12:38 |
| |||
Andinista .. la validación por javascript NOOOOOOOO es suficiente ni es seguro. DEBES hacer una validación minima en PHP .. por lo menos sobre los campos requeridos y tipo de estos. (Manoloweb te puso ya ejemplos ) ---- Si vas a usar el foreach() no uses el extract() (con "t" .. ) Revisa lo que hace esa función en: http://www.php.net/manual/en/function.extract.php Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
![]() ok muchachos probe con las diferentes maneras que manoloweb propuso pero nada mas me ha servido la ultima Código PHP: les pido un poco de paciencia y que me aconsejen y disculpen por que no sé manejar bien esta area ![]() |