Foros del Web » Programando para Internet » PHP »

generar input's text por cada registro dentro de un while

Estas en el tema de generar input's text por cada registro dentro de un while en el foro de PHP en Foros del Web. Hola que tal, tengo esta consulta que me va imprimiendo el mes con su importe... pero ahora quiero meterle un campo(input text) a cada registro ...
  #1 (permalink)  
Antiguo 22/08/2012, 14:42
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 10 años, 6 meses
Puntos: 4
Pregunta generar input's text por cada registro dentro de un while

Hola que tal,
tengo esta consulta que me va imprimiendo el mes con su importe... pero ahora quiero meterle un campo(input text) a cada registro para depues guardarlos de nuevo..
Código PHP:
Ver original
  1. <?php
  2. $meses[1]='ENERO';
  3. $meses[2]='FEBRERO';
  4. $meses[3]='MARZO';
  5. $meses[4]='ABRIL';
  6. $meses[5]='MAYO';
  7. $meses[6]='JUNIO';
  8. $meses[7]='JULIO';
  9. $meses[8]='AGOSTO';
  10. $meses[9]='SEPTIEMBRE';
  11. $meses[10]='OCTUBRE';
  12. $meses[11]='NOVIEMBRE';
  13. $meses[12]='DICIEMBRE';
  14. $sql="SELECT YEAR(fecha) AS ANIO, MONTH(fecha) AS MES, MONTHNAME(fecha) AS NOMBRE, importe, SUM(iva) as tiva, SUM(importe) as timp FROM tabla WHERE YEAR(fecha)='$anio' AND importe!='0' AND iva!='0' GROUP BY ANIO DESC , MES ASC";$fechas=mysql_query($sql,$conexion);
  15.  
  16. echo "<form name='form' id='form' action='' method='post'>";
  17. echo "<table>";
  18. echo "<thead>";
  19. echo "<tr>";
  20. echo "<th>MES</th>";
  21. echo "<th>OBSERVACIONES</th>";
  22. echo "<th>IMPORTE</th>";
  23. echo "</tr>";
  24. echo "</thead>";
  25. $totalimp = 0;
  26. while ($fech=mysql_fetch_array($fechas))
  27. {
  28. $timporte=$fech['tiva']+$fech['timp'];
  29. echo "<tr>";
  30. echo "<td>".$meses[$fech['MES']]."</td>";
  31. echo '<td style="text-align:center"><input type="text" name="'.$meses[$fech['MES']].'observacion" id="'.$meses[$fech['MES']].'observacion" size="80"></td>';
  32. echo "<td style='text-align:right'>$timporte<input name='mes' type='checkbox'></td></tr>";
  33. $totalimp+=$timporte;
  34. }
  35. echo "<tr><td></td><td>TOTAL</td><td>$$totalimp</td></tr></table>";
  36. }
  37. ?>

esto me genera algo asi:


donde en el codigo cada input text tendria algo asi como nombre:

Código HTML:
Ver original
  1. name="ENEROobservacion"

y a la hora de recibir la variable nombre de cada input (name="'.$meses[$fech['MES']].'observacion") con POST ya no se como hacerle...
Código PHP:
Ver original
  1. $observaciones=$_POST[''];
  #2 (permalink)  
Antiguo 22/08/2012, 15:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 9 meses
Puntos: 2534
Respuesta: generar input's text por cada registro dentro de un while

Esa forma de nombrar los campos es pésima, lo ideal es tenerlos en un array tipo.
Código HTML:
<input name="observacion[ENERO]"/> 
Y así cuando recuperas dicha variable ya tienes todo agrupado en un sólo arreglo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/08/2012, 15:01
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 13 años, 8 meses
Puntos: 528
Respuesta: generar input's text por cada registro dentro de un while

El nombre lo puedes formar así:

$name=$meses[$fech['MES']].'observacion';

y luego obtener el valor del post así:

$valor=$_POST[$name];

Aunque no creo que fuera la mejor manera, si desde tu formulario puedes manejar el campo como arreglo:
en vez de <input type="text" name="'.$meses[$fech['MES']].'observacion"

hacer <input type="text" name="observacion[]"

con los [] indicas que el campo observacion es un arreglo y lo puedes recibir en el post como tal
  #4 (permalink)  
Antiguo 22/08/2012, 16:15
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: generar input's text por cada registro dentro de un while

muchas gracias por sus respuestas... estare probando.
  #5 (permalink)  
Antiguo 22/08/2012, 18:12
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: generar input's text por cada registro dentro de un while

perdon.. pero sigo sin recibir bien las variables para guardarlas a la base de datos...
lo inetente asi:
Código HTML:
Ver original
  1. <input type='text' name='observacion[$meses]' >

y para recibirlo asi:
Código PHP:
Ver original
  1. $observaciones=$_POST['observacion[$meses]'];

pero aun no..
  #6 (permalink)  
Antiguo 23/08/2012, 11:08
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 13 años, 8 meses
Puntos: 528
Respuesta: generar input's text por cada registro dentro de un while

1. Te recomiendo que en vez de observacion[$meses] uses observacion[]
2. Verificar que recibes datos, en tu script que recibe los datos del formulario, hacer un dump: var_dump($_POST);
3. Acceder a los campos será sencillo:

$enero=$observacion[0];
  #7 (permalink)  
Antiguo 23/08/2012, 14:07
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 10 años, 6 meses
Puntos: 4
Respuesta: generar input's text por cada registro dentro de un while

Cita:
Iniciado por ocp001a Ver Mensaje
1. Te recomiendo que en vez de observacion[$meses] uses observacion[]
2. Verificar que recibes datos, en tu script que recibe los datos del formulario, hacer un dump: var_dump($_POST);
3. Acceder a los campos será sencillo:

$enero=$observacion[0];
ok! hice lo que me dijiste y me sale el contenido del arreglo:
array (size=3)
'observacion' =>
array (size=3)
0 => string 'observacion 1' (length=13)
1 => string 'observacion 2' (length=13)
2 => string 'observacion 3' (length=13)
'mes' =>
array (size=3)
0 => string 'JUNIO' (length=5)
1 => string 'JULIO' (length=5)
2 => string 'AGOSTO' (length=6)


ahora como puedo guardar esto a la base de datos donde:
JUNIO - observacion 1
JULIO - observacion 2
AGOSTO - observacion 3

osea que cada observacion en su mes correspondiente

Última edición por totti026; 23/08/2012 a las 14:18

Etiquetas: cada, registro, sql, tabla, variables, txt
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 13:35.