Foros del Web » Programando para Internet » PHP »

¿como unir serie de formularios?

Estas en el tema de ¿como unir serie de formularios? en el foro de PHP en Foros del Web. Hola amigos del web, estoy haciendo una página en la que en una de sus secciones son una serie de formularios, pero tengo la siguiente ...
  #1 (permalink)  
Antiguo 08/03/2010, 20:22
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
¿como unir serie de formularios?

Hola amigos del web, estoy haciendo una página en la que en una de sus secciones son una serie de formularios, pero tengo la siguiente duda.

Les describo los pasos
1.- Ingresa datos del cliente
2.- ingresa los datos del articulo (del cliente)
3.- 2º parte de datos del articulo
4.- Genera número orden de trabajo

Por el momento estoy haciendo lo siguiente:
Creo dos achivos por ejemplo cliente.php, que apunta al archivo clientes.funciones.php tiene los switch de la función que corresponda en cada caso (grabar, mostrar formulario, comboboxes, etc). Para pasar a la segunda parte del formulario por el momento 1ºgrabo en la base de datos y luego un link normal <href> a la siguiente parte de los formularios otroarchivo.php con su otroarchivo.funciones.php y asi sucesivamente.
Estoy casi completamente seguro que esta no es la forma de hacerlo ya que me están quedando independientes los datos por tabla y lo que necesito es que se trabaje todo unido. Y creo que es fundamental para una parte del formulario en la que trabajo considerando la id de un articulo en relacion con esa tabla de trues y falses

¿que puedo hacer?¿alguna sugerencia?

¿Tendre que almacenar todos los datos de los formularios anteriores en una variable de memoria?

Muchas gracias, que les vaya bien
  #2 (permalink)  
Antiguo 08/03/2010, 21:42
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: ¿como unir serie de formularios?

¿Y no te sirve hacerlo todo en la misma pagina? ¿cual es el motivo de ir dividiendo el formulario en diferentes partes? ¿usabilidad o hay algo mas? Te pregunto esto para aconsejarte una cosa u otra, porque si un sub-formulario (por llamarlo asi) depende del anterior para mostrar unas cosas u otras entonces la solucion es muy distinta, saludos
  #3 (permalink)  
Antiguo 08/03/2010, 21:49
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

lo hago asi por mantener un orden en el desarrollo, que con demasiado código uno tiende a confundirse a veces y la solucion que le di con el link tipico href es para tener un acceso más directo cuando voy probando la página, desde un principio lo tomé como provisorio, pero creo que en el momento en el que una serie de checkboxes que van en una tabla relacionada directamente con otra tabla (tabla estado_articulo va conectada con id_articulo), necesito que esté todo interrelacionado.
  #4 (permalink)  
Antiguo 08/03/2010, 21:52
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: ¿como unir serie de formularios?

No entendi ni papa de lo ultimo que pusiste x_X

Bueno, otra pregunta, si el mismo usuario entra al dia siguiente ¿tiene que volver a introducir sus datos? ¿o directamente loguea de alguna forma y ya solo tiene que introducir articulos?
  #5 (permalink)  
Antiguo 08/03/2010, 22:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

No, esta página es para un servicio técnico, y generar una orden de trabajo con un número, cuando el usuario entra, y agrega una orden de trabajo la orden queda registrada y es visible en otra sección, ahora lo que estoy haciendo es el formulario de ingreso de la orden, que la tengo toda dividida por páginas segun la sección. es decir, al otro día, se agregaría una nueva orden de trabajo, no se agregan articulos despues. Se genera otra orden.

Buscando en el foro enconté esto :
http://www.forosdelweb.com/wiki/PHP:..._a_otro.php%3F

¿serviría?
  #6 (permalink)  
Antiguo 08/03/2010, 22:47
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: ¿como unir serie de formularios?

Bueno, estaria bien ver exactamente los campos de tu formulario, pero se me ocurre que uses variables de sesion para mantener los valores de lo introducido de pagina en pagina, sin necesidad de grabarlo en la base de datos excepto al final del todo claro está.

¿que tal te manejas con las sesiones?
  #7 (permalink)  
Antiguo 08/03/2010, 22:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

Para ser sincero: Nada de variables de sesión, quizas nociones básicas . No tengo mucho trote en esto de php :/

¿esto funcionaria bien?
http://www.forosdelweb.com/wiki/PHP:...sesi%C3%B3n%3F

¿se cargaría en el momento de ingresar al formulario y despues se iria guardando lo que le indiqué o debo ir formulario por formulario creando otra?
  #8 (permalink)  
Antiguo 08/03/2010, 23:05
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: ¿como unir serie de formularios?

Por supuesto, lo mejor es que testees un poco, antes de meterte en el ajo.

Código PHP:
Ver original
  1. session_start(); // al inicio de todas las paginas o la sesion se va al garete
  2. echo $_SESSION['test'];
  3. $_SESSION['test']=1000;


En esta pagina al entrar por primera vez no va a imprimir nada, pero al actualizar, vas a ver como $_SESSION['test'] ya contiene un valor, y lo va a mantener durante todas las paginas de tu sitio mientras el usuario siga navegando y no cierre su navegador.

De esta manera cuando envies una parte de tu formulario vas metiendolo todo en variables de sesion, e incluso, si digamos de la pagina formulario2.php pones un enlace <<ANTERIOR para volver a formulario1.php puedes hacer lo siguiente:

Código PHP:
Ver original
  1. <input name="nombre" type="text" value="<?php echo $_SESSION['nombre']; ?>">

Asi automaticamente si la variable de sesion 'nombre' tiene un valor pues dicho campo se "autorellena", prueba!
  #9 (permalink)  
Antiguo 08/03/2010, 23:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

Para que tengas una nocion de lo que hago te muestro las funciones del formulario y de grabar

Función Formulario ingreso:

Código PHP:
function mostrarFrmIngreso() {
require(
'header.php');

    echo 
'<form action="clientes.php" method="post">
    <div id="lateral" class="suffix_10">
  <div id="mainContent" class="grid_12">

                                     <div id="bot1" class="grid_12">
                                    <p>Nombre:</p>
                                    <p>
                                      <input name="nombreCliente" type="text" size="50" />
                                      </p>
                                  </div>
                                 <div id="bot2" class="grid_12">
                                   <p>Agente:</p>
                                   <p>
                                       ' 
cmbAgente() . '
                                       </p>
                                 </div>
                                  <div id="bot3" class="grid_12">
                                    <p>RUT:</p>
                                    <p> 
                                      <input name="rutCliente" type="text" size="11" maxlength="10" />
                                      - 
                                      <input name="verificador" type="text" size="3" maxlength="2" />
                                    </p>
                                  </div>
                                  <div id="bot4" class="grid_12">
                                    <p>Teléfono:</p>
                                    <p> 
                                      <input name="fonoCliente" type="text"/>
                                    </p>
                                  </div>
                                  <div id="bot5" class="grid_12">
                                    <p>Email:    
                                    <p> 
                                      <input name="emailCliente" type="text" size="50"/>
                                    </div>
                                       <div id="botonera"class="container_12">
    <div id="botizq" class="grid_1"></td>
        <input type="hidden" name="operacion"
                value="grabarCliente"></div>
       <div id="botcentro" class="grid_1"><input type="image" src="imagenes/bot1grabar.png" value="Grabar"></div>
       <div id="botderecha" class="grid_1"><input type="image" src="imagenes/bot1volver.png" onClick="history.back();"><a href="reloj.php"><img src="imagenes/bot1siguiente.png" /></a></div>
</div>
    </form>'
;


Función grabar

Código PHP:
function grabar() {
    
// recuperar parametros
    
$nombre  $_POST['nombreCliente'];
    
$rut $_POST['rutCliente'];
    
$verificador $_POST['verificador'];
    
$telefono $_POST['fonoCliente'];
    
$email $_POST['emailCliente'];
    
$agente $_POST['idagente']; 

    
// validar parametros
    
$mensaje '';
    if (
trim($nombre) == '') {
        
$mensaje .= 'Debe ingresar un nombre.';
    }

    if (
$mensaje != '') {

        echo 
"<script>
            alert('$mensaje');
            history.back();
            </script>"
;

        exit();
    }

    
$nombre mysql_real_escape_string($nombre);

    
// generar INSERT
    
$sql "INSERT INTO clientes(
            name, 
            rut, 
            dv_rut,
            fono,
            email,
            id_agente
        ) VALUES (
            '$nombre', 
            '$rut',
            '$verificador',
            '$telefono',
            '$email',
            '$agente'
        )"
;


    
// ejecutar INSERT
    
mysql_query($sql) or exit(mysql_error());

    
// volver a programa principal
    
header('location: clientes.php');

Espero que no sea muy extenso y complique más.
  #10 (permalink)  
Antiguo 08/03/2010, 23:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

Gracias por lo de las variables, lo probaré
  #11 (permalink)  
Antiguo 08/03/2010, 23:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

Tengo una duda en el uso de las variables de sesión:

Vi este ejemplo en php.net:

Código PHP:
<?php
// page1.php

session_start();

echo 
'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' SID '">page 2</a>';
?>
¿ en el valor de la sesión, en el caso de green, cat, o time(), si quiero guardar como variable lo ingresado en el campo del fomulario de nombre debería escribir el nombre del campo? o sea si el campo de texto se llama nombreCliente, eso debo poner en el inicio de la variable de sesión?
  #12 (permalink)  
Antiguo 09/03/2010, 00:10
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: ¿como unir serie de formularios?

Si el campo del formulario se llama nombreCliente, dicho dato llegara al php para procesarlo como $_POST["nombreCliente"] , aunque tambien te sirve directamente $nombreCliente, pero es mucho mas seguro de la primera forma
  #13 (permalink)  
Antiguo 10/03/2010, 17:06
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

¿es decir?

Código PHP:
$_SESSION['cliente'] = '$_POST["nombreCliente"]'
¿eso está bien?
  #14 (permalink)  
Antiguo 10/03/2010, 18:17
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: ¿como unir serie de formularios?

Asi:

$_SESSION['cliente'] = $_POST["nombreCliente"];

Ya sabes, po un echo $_SESSION['cliente']; y tu mismo lo compruebas que tome algun valor
  #15 (permalink)  
Antiguo 10/03/2010, 20:35
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ¿como unir serie de formularios?

Bingo! gracias, muchas gracias por tu ayuda y paciencia Vun, has sido muy amable.

Etiquetas: arrays, arreglos, unir, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:22.