Foros del Web » Programando para Internet » PHP »

Almacenar datos de los campos

Estas en el tema de Almacenar datos de los campos en el foro de PHP en Foros del Web. Hola tengo este codigo php y almacena los datos de mi formulario, pero mi formulario se repiten varios campos aproximadamente 16 veces quiero saber como ...
  #1 (permalink)  
Antiguo 23/07/2013, 15:55
jesusmiranda92
Invitado
 
Mensajes: n/a
Puntos:
Almacenar datos de los campos

Hola tengo este codigo php y almacena los datos de mi formulario, pero mi formulario se repiten varios campos aproximadamente 16 veces quiero saber como puedo hacer para que almacene todos los datos sin necesidad de que repita las 16 veces el codigo aqui?

Código PHP:
<html>
<head>
<title>Cargados</title>
</head>
<body>
<?php

$fecha_actual
=date("d-m-Y H:i:s");


  
$ar=fopen("datos.xls","a") or
    die(
"Problemas en la creacion");
 
fputs($ar,"FECHA EDICION: ");
  
fputs($ar,$fecha_actual);
 
fputs($ar,"\n");
  
fputs($ar,$_REQUEST ['fecha_cre']);    
 
fputs($ar,"NOMBRE: "); 
  
fputs($ar,$_REQUEST ['form_name']);
  
fputs($ar,"\n");
 
fputs($ar,"DEPARTAMENTO: ");  
  
fputs($ar,$_REQUEST['form_depa']);
  
fputs($ar,"\n");
 
fputs($ar,"FECHA: ");  
  
fputs($ar,$_REQUEST['fechaf']); // este campo hay 15 mas 
  
fputs($ar,"\n");
 
fputs($ar,"CONCEPTO: ");  
  
fputs($ar,$_REQUEST['concep']);  // este campo hay 15 mas
 
fputs($ar,"    /COSTO: ");  
  
fputs($ar,$_REQUEST['sub']);  // este campo hay 15 mas
 
fputs($ar,"    /IVA: ");  
  
fputs($ar,$_REQUEST['iva']);  // este campo hay 15 mas
 
fputs($ar,"    /Total: ");
  
fputs($ar,$_REQUEST['tosum1']);  // este campo hay 15 mas
  
fputs($ar,"\n"); 
  
fputs($ar,"--------------------------------------------------------");
  
fputs($ar,"\n");
  
fclose($ar);
  echo 
"Los gastos se enviaron correctamente.";
  
?>
</body>
</html>
  #2 (permalink)  
Antiguo 23/07/2013, 16:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Almacenar datos de los campos

Serviría más ver tu formulario y una lista de campos para poder sugerirte algo, como que uses arrays en esos campos, ejemplo:

Código HTML:
Ver original
  1. <input type="text" name="fechaf[]" value="" /><-- Este es el # 1 -->
  2. <input type="text" name="fechaf[]" value="" /><-- Este es el # 2 -->
  3. ...
  4. <input type="text" name="fechaf[]" value="" /><-- Este es el # 16 -->

Luego, en PHP
Código PHP:
Ver original
  1. foreach($_POST['fechaf'] as $fechaf) {
  2.       // Aquí lo que necesites hacer con el campo
  3. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 23/07/2013, 16:36
jesusmiranda92
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Almacenar datos de los campos

Mi formulario es este


Código HTML:
<body> 
	<form action="create.php" method="post" name="Gastos" onsubmit="return validateForm()">
		<fieldset>
		<div>Nombre Completo<font color="red">*</font>:<input type="text" name="form_name" size="30" style="width:20%;" maxlength="70" placeholder="Nombre Completo"> //este solo se usa una vez
		<label>Departamento<font color="red"></font>:
		<select size="1" name="form_depa"> //este solo se usa una vez
			<optgroup label="Departamento">
			<option value="">Selecciona un departamento</option>
			<option>Administracion - 1200</option> 
			<option>Ventas - 1400</option> 
			<option>Servicios  - 1600</option> 
			<option>Instalacion - 1600</option>
		</select></label></div> 
		<br><br>
		</fieldset>
		<p>
	

<center>	
<TABLE BORDER=1 WIDTH=300>

<TR>
<TD WIDTH=100><p align=center>Fecha</TD>
<TD WIDTH=100><p align=center>Concepto</TD>
<TD WIDTH=100><p align=center>Sub total</TD>
<TD WIDTH=100><p align=center>Iva</TD>
<TD WIDTH=100><p align=center>Total</TD>
</TR>

<TR>
<TD WIDTH=100><input type="date" name="fechaf" size="45" style="width:100%;" maxlength="10"></TD>
<TD WIDTH=100><select size="1" name="concep"> //este se repite mas veces
<option value=""> Tipo de Gasto</option>
		<option>Trasportacion Aerea - Instal y Inge Deducible</option> 
		<option>Trasportacion Aerea - Instal y Inge  NO Deducible</option> 
		<option>Taxi - Instalacion y Ingenieria Deducible</option> 
		<option>Taxi - Instalacion y Ingenieria NO Deducible</option> 
		<option>Renta de autos - Insta y Ingen Deducible</option> 
		<option>Renta de autos - Insta y Ingen NO Deducible</option> 
		<option>Comidas locales - Instalacion y Ingenier Deducible</option> 
		<option>Peajes y pasajes - Instl y Ingen Deducible</option> 
		<option>Peajes y pasajes - Instl y Ingen NO Deducible</option> 
		<option>Hospedaje - Instalacion y Ingenieria Deducible</option> 
		<option>Hospedaje - Instalacion y Ingenieria NO Deducible</option> 
		<option>Estacionameinto - Instal y Ingenieria deducible</option> 
		<option>Estacionameinto - Instal y Ingenieria NO deducible</option> 
		<option>Alimentacion - Instal y Ingenieria deducible</option> 
		<option>Alimentacion - Instal y Ingenieria NO deducible</option> 
		<option>Lavanderia - Instal y Ingenieria Deducible</option> 
		<option>Lavanderia - Instal y Ingenieria NO Deducible</option> 
		<option>Otras compras - Instal y Ingenieria Deducible</option> 
		<option>Otras compras - Instal y Ingenieria NO Deducible</option> 
		<option>Combustibles y Lubricantes Deducibles</option> 
		<option>Combustibles y Lubricantes NO Deducibles</option> 
		<option>Otras compras de computo</option> 
		<option>Papeleria Deducible</option> 
		<option>Papeleria NO Deducible</option> 
		<option>Suscripciones y cuotas</option> 
		<option>Otros Impuestos y derechos Deducibles</option> 
		<option>Otros Impuestos y derechos NO Deducibles</option> 
		<option>Servicios de Internet Deducibles</option> 
		<option>Servicios de Internet NO Deducibles</option> 
		<option>Paqueteria y envios</option> 
		<option>Telefonos movil - Instal y Ingenieria Deducibles</option> 
		<option>Ayuda de Educacion - GEN y ADMIN</option>
		</select></TD>		
<TD WIDTH=100><input type="text" name="sub"  onChange="validarSiNumero(this.value);" placeholder="Costo $"/></TD>//este se repite mas veces
<TD WIDTH=100><input type="text" name="iva" onChange="validarSiNumero(this.value);" placeholder="IVA %"/></TD>//este se repite mas veces
</TR>
</TABLE>
</center>
	

<!-------------------------------------------------------
<!------------------------------------------------------>
<br>
<br>
<label>Adjuntar Comprobantes de gastos</label><p>

<fieldset id="fiel">
<input type="file" name="adjunto" />
<input type="button" value="+" onclick="adjuntar(this)" />
</fieldset>
<br>

<center>
<input type="reset" value="Borrar Info" />
<input type="submit" value="Enviar informacion">

</center>
</form>

</body> 
no pongo todos por que abarcaría mucho eso es lo que quiero evitar.
  #4 (permalink)  
Antiguo 23/07/2013, 17:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Almacenar datos de los campos

Te serviría una función (o varias), ejemplo:

Código PHP:
Ver original
  1. $opcionesTipoGasto = array(
  2.     'Tipo de Gasto',
  3.     'Transportación Aérea - Instal e Inge Deducible',
  4.     'Transportación Aérea - Instal e NO Inge Deducible',
  5.     '... así hasta completar las opciones ...',
  6. );
  7.  
  8. // $campo es el nombre del campo, puede usar concep[] si son muchos
  9. // $valor es el valor actual, para poder marcar el option como seleccionado
  10. // $opciones es el array que contiene todas las opciones disponibles
  11. function formSelect($campo, $valor, $opciones) {
  12.     $str = "<select name=\"$campo\">\n";
  13.      foreach($opciones as $index => $text) {
  14.            // Para saber cuál es el que está seleccionado
  15.            $selected = ($index == $valor) ? ' selected="selected"' : '';
  16.            $str .= "<option value=\"$index\"$selected>$text</option>\n";
  17.      }
  18.     $str .= "</select>\n";
  19.     return $str;
  20. }
  21.  
  22. // Luego puedes crear los selects:
  23. echo formSelect('concep', 0, $opcionesTipoGasto);
  24.  
  25. // Si son muchos, consecutivos y con el mismo nombre:
  26. for($i = 1; $i <= 16; $i++) {
  27.       // Tal vez necesites abrir y cerrar <td> dentro del ciclo
  28.       echo formSelect('concep[]', 0, $opcionesTipoGasto);
  29. }
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 24/07/2013, 08:32
jesusmiranda92
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Respuesta: Almacenar datos de los campos

Amigo, soy novato en esto, como crees que pueda hacer para que los campos que repetire con el nombre "valor" los tome el php??
es decir,
Código HTML:
<TD WIDTH=100><input type="date" name="valor" size="45" style="width:100%;" maxlength="10"></TD><-- Este se repite varias veces-->
<TD WIDTH=100><select size="1" name="valor"><-- Este se repite varias veces-->

quiero que el php analice el formulario y que obtenga los datos de todos lo campos que tengan el nombre "valor"
  #6 (permalink)  
Antiguo 24/07/2013, 08:36
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Almacenar datos de los campos

Para que funcione en PHP lo unico que no puedes repetir es el NAME
__________________
Salu2!

Etiquetas: almacenar, campos, formulario, html
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 00:56.