Obtener datos desde un formulario con PHP y procesarlos

enero 23, 2009 a las 11:38 am | Publicado en Programacion | 17 comentarios
Etiquetas: , , , ,

En el siguiente programa vamos a hacer lo siguiente.

Tenemos un formulario como el que se muestra en la siguiente imagen:

Formulario de ingreso de datos

Formulario de ingreso de datos

El usuario debe ingresar esos datos. Y de acuerdo al «Tipo de cliente» vamos a calcular el valor a cancelar. Los precios de los libros se calculan de acuerdo a la siguiente tabla:

Tabla de precios de los libros de acuerdo al tipo del cliente

Tabla de precios de los libros de acuerdo al tipo del cliente

Ahora veamos el código.

Creamos el archivo llamado formulario.php que contendrá el siguiente código dentro del <body>:

<form id=»form1″ name=»form1″ method=»post» action=»procesa.php«>
<table width=»460″ border=»0″>
<tr>
<td width=»99″><strong>Cliente:</strong></td>
<td width=»188″><label>
<input type=»text» name=»clie» id=»clie» />
</label></td>
<td width=»159″>&nbsp;</td>
</tr>
<tr>
<td><strong>Libros A</strong></td>
<td><label>
<input type=»text» name=»libA» id=»libA» />
</label></td>
<td>Tipo de cliente:</td>
</tr>
<tr>
<td><strong>Libros B</strong></td>
<td><label>
<input type=»text» name=»libB» id=»libB» />
</label></td>
<td><label>
<select name=»tipo_clie» id=»tipo_clie»>
<option>Tipo A</option>
<option>Tipo B</option>
<option>Tipo C</option>
</select>
</label></td>
</tr>
<tr>
<td><strong>Libros C</strong></td>
<td><label>
<input type=»text» name=»libC» id=»libC» />
</label></td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan=»3″><div align=»center»>
<label>
<input type=»submit» name=»ok» id=»ok» value=»O K..» />
</label>
</div></td>
</tr>
</table>
</form>

Como podemos ver en el código cada campo del formulario tiene su propio nombre. De esa manera podremos obtener los datos ingresados en ese campo. En el action del formulario estamos llamando al archivo procesa.php que lo crearemos más adelante.

En php para obtener los datos ingresados en un formulario se lo hace mediante el siguiente código:

$_POST[«nombre_campo_formulario»];

Tomando eso en cuenta vamos a realizar el archivo PHP que procese la información ingresada en el formulario.

Creamos el archivo procesa.php que contendrá lo siguiente:

Al comienzo del archivo, incluso antes de la etiqueta <html> copiamos el siguiente código:

<?php

//Almacenamos en variables lo ingresado en el formulario
$cliente = $_POST[«clie»];
$lib_A = $_POST[«libA»];
$lib_B = $_POST[«libB»];
$lib_C = $_POST[«libC»];
$tipo_clie =$_POST[«tipo_clie»];

//Sumamos los valores ingresados en las variables de los libros para saber cuántos libros se han comprado
$tot_lib = $lib_A + $lib_B + $lib_C;

//Si el cliente es de Tipo A, se calcula el precio de cada libro de acuerdo a los precios que se muestran en la tabla anterior.
if ($tipo_clie == «Tipo A»){
$precio_A1 = $lib_A * 5;
$precio_B1 = $lib_B * 6;
$precio_C1= $lib_C * 7;
}

//Si el cliente es de Tipo B, se calcula el precio de cada libro de acuerdo a los precios que se muestran en la tabla anterior.
if ($tipo_clie == «Tipo B»){
$precio_A2 = $lib_A * 10;
$precio_B2 = $lib_B * 20;
$precio_C2 = $lib_C * 30;
}

//Si el cliente es de Tipo C, se calcula el precio de cada libro de acuerdo a los precios que se muestran en la tabla anterior.
if ($tipo_clie == «Tipo C»){
$precio_A3 = $lib_A * 40;
$precio_B3 = $lib_B * 50;
$precio_C3 = $lib_C * 60;
}

//Calculamos el total de cada tipo de libro
$total_A = $precio_A1 + $precio_A2 + $precio_A3;
$total_B = $precio_B1 + $precio_B2 + $precio_B3;
$total_C = $precio_C1 + $precio_C2 + $precio_C3;

//Calculamos el total de todos los libros vendidos
$total = $precio_A1 + $precio_B1 + $precio_C1 + $precio_A2 + $precio_B2 + $precio_C2 + $precio_A3 + $precio_B3 + $precio_C3;
?>

Luego dentro de la etiqueta <body> vamos a insertar el siguiente código:

<table width=»460″ border=»1″>
<tr>
<td width=»127″><strong>Cuenta:</strong></td>
<td width=»146″>&nbsp;<?php $cuenta = rand(1000,9999); echo «$cuenta»; ?></td>
<td width=»97″><strong>TC:</strong></td>
<td width=»72″>&nbsp;<?php echo «$tipo_clie»; ?></td>
</tr>
<tr>
<td><strong>Nombre:</strong></td>
<td>&nbsp;<?php echo «$cliente»; ?></td>
<td colspan=»2″ rowspan=»6″>&nbsp;</td>
</tr>
<tr>
<td><strong>Total de libros:</strong></td>
<td>&nbsp;<?php echo «$tot_lib»; ?></td>
</tr>
<tr>
<td><strong>Valor libro A</strong></td>
<td>&nbsp;<?php echo «$total_A»; ?></td>
</tr>
<tr>
<td><strong>Valor libro B</strong></td>
<td>&nbsp;<?php echo «$total_B»; ?></td>
</tr>
<tr>
<td><strong>Valor libro C</strong></td>
<td>&nbsp;<?php echo «$total_C»; ?></td>
</tr>
<tr>
<td><strong>Total</strong></td>
<td>&nbsp;<?php echo «$total»; ?></td>
</tr>
</table>

Ahí estamos imprimiendo en una tabla los resultados de las variables que calculamos antes.

Para imprimir datos en PHP usamos el comando echo. Si deseamos imprimir una variable entonces imprimimos dentro del echo entre comillas.

Es decir, si tenemos la variable $suma y queremos imprimir su contenido lo hacemos de la siguiente manera:

echo «$sum»;

Si queremos imprimir códigos HTML entonces lo hacemos entre apóstrofes ‘. Si queremos imprimir el comando <br> para salto de línea, lo hacemos de la siguiente forma:

echo ‘<br>’;

Recuerda:

echo ‘<br>’;

y

echo «<br>»;

No darán el mismo resultado

Ahora te debes estar preguntando ¿cómo mezclo PHP y HTML?. Pues es muy sencillo. Lo separamos usando un punto (.). De la siguiente manera. Vamos a suponer que vamos a imprimir la variable $sum y antes de ella va un salto de línea y después también, para que no se amontone todo. Pues lo haríamos de la siguiente manera:

<?php
$num = 50;
echo ‘<br>’.$sum.'<br>’;
?>

O también puede ser:

<?php
$num = 50;
echo ‘<br>’.»$sum».'<br>’;
?>

Ambos casos darán el mismo resultado.

Así podemos ir mezclando tanto PHP como HTML. Por ejemplo ahora vamos a imprimir el texto con color rojo. Se lo haría de la siguiente manera:

<?php

$sum = 100;

echo ‘<br><font color=»red»>’.»$sum».'</font><br>’;

?>

Eso si, no debes olvidar que cuando abras una etiqueta HTML debes cerrarla. Como en el caso anterior, abrimos la etiqueta <font> y luego la cerramos con </font>.

Algo más que debemos aclarar del programa, es que dentro del archivo procesa.php encontramos el comando:

<?php $cuenta = rand(1000,9999); echo «$cuenta»; ?>

El comando rand cimplemente nos sirve para obtener un número aleatorio. La sintaxis es la siguiente:

rand(int min, int max);

Debemos elegir entre qué números va a estar el número aleatorio, es decir, un rango.

Para terminar, una vez ingresados los datos en el formulario, el resultado sería el siguiente:

Resultado del programa

Resultado del programa

La interfaz ya depende de ti.

17 comentarios »

RSS feed for comments on this post. TrackBack URI

  1. muy bueno lo enviado =) interesante me servira de muxa ayda

  2. esta bien bonito todo _S:

  3. Hola!!!

    Hechame un lazo amigo!!

    Ando ahciendo casi lo mismo qde lo que hiciste….

    Estoy haciendo un formulario…calculando un presupuesto…..que salon, personas, tiempo, menu…etc etc….

    Al final me imprime un resultado….

    O sea un total….

    Pero ya me ando haciendo bolas en php…..he declarado avriables….

    la cosa es ver como hacerle….para hacer operaciopnes…multiplicaciones…cosas asi……

    espero puedas hecharme un lazo…..

    Cuidate!

    Suerte!

    Bye!

    -RmP-

    • Las operaciones en PHP son así por ejemplo:

      $a = 5;
      $b = 10;
      $suma = ($a + $b); //$suma vale 15
      $resta = ($b - $a); //$resta vale 5
      $multiplicacion = ($a * $b); //$multiplicacion vale 50
      $division = ($b / $a); //$division vale 2
      $residuo = ($b % $a); //$residuo vale 0

      Todo eso entre los códigos de apertura y cierre de PHP.Luego solo harías un echo de los resultados.

  4. si requiero de utilizar los datos del form1 en mas de un archivo php se podria hacer esto???(lo q esta espaciado):

  5. muy bueno el ejemplo, me fue de gran ayuda…

  6. Me sirvio mucho, gracias por compartir

  7. hola podrian ayudarme a imprimir un archivo php. explico lo qwue quiero… deseo hacer el simulacro de una factura la cual tendra datos que deseo mostrar en una factura para luego imprimirla… pero la consulta me la hace es por medio de archivo .php.. como haria?????

  8. Debo estar haciendo algo mal porque el resultado me sale en blanco ponga lo que ponga en el formulario.

    ¿que podría ser?

  9. excelente ejemplo!!! me sirvio de mucha ayuda!!! mil gracias!!!!!!!!!!!!

  10. esta bueno todo esto hermano…

  11. Hola me puedes dara una mano,
    tengo un sitio web en dreamweaver cs5, estoy aprendiendo a crear las paginas
    y en la parte del formulario para recibir los datos no se como hacerlo me puedes guiar, por ejemplo el formulario es sencillo, tienen nombre, email, telefono, observaciones, pero no se como hacer el retorno en php, para poder ver los datos me indicas como

  12. hola, me piden hacer una pantalla de ingreso de datos de una factura e imprimirla. Nada mas, por ahora. El tema que no sé en que lenguaje hacerlo. Java o php, alguien me puede orientar? Dese ya, muchas gracias.

  13. ME servira mucho al parecer voy a hacer un formulario de acceso Php

  14. Gracias me saco de apuros !!

  15. se ve muy interesante y gracias por compartir estos conocimientos a los novatos gracias a muchos tutoriales e podido diseñar y programar una pagina web

  16. Me gusta este ejemplo, pero algo esta mal en «procesa.php» ya que da error en las lineas: 35; 36; 37 y 40


Deja un comentario

Crea un blog o un sitio web gratuitos con WordPress.com.
Entries y comentarios feeds.