Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2012, 07:08
ohk
 
Fecha de Ingreso: abril-2012
Mensajes: 8
Antigüedad: 11 años, 11 meses
Puntos: 1
Mensaje Recibir input dinámico con php

Hola gente, tengo un problema, estoy creando un formulario dinamico dependiente de los campos de una base de datos, de dos tablas para ser mas específico y tengo problemas el recibir los datos.

Os muestro como creo el formulario, como lo envió y como lo recibo y los problemas que tengo.

Formulario de envió:

Código PHP:
Ver original
  1. <?
  2. #Consulta selecciona rubros
  3. #Consulta selecciona plan y años
  4. #Resultados de ambas consultas correctos y con datos.
  5.  
  6. $anos = 4;
  7. $anoinicio = 2012;
  8. $anios = $anos;
  9. $contador = 0;
  10. $cont = 0;
  11.  
  12. ?>
  13.  
  14. #Formulario dentro de Tabla
  15.  
  16. <table>
  17.     <tr>
  18.         <th>ID</th>
  19.         <th>Rubro</th>
  20.         <?
  21.             while($anios > 0){
  22.                 $anop = $anoinicio + $contador;
  23.         ?>
  24.                 <th><? echo $anop; ?></th>
  25.         <?      $anios = $anios - 1;
  26.                 $contador = $contador + 1;
  27.             }
  28.         ?>
  29.     </tr>
  30.     <form name="form1" action="recibir.code.php" method="post">
  31.     <? do{
  32.             $cc = 1;
  33.             $anfios = $anos;
  34.     ?>
  35.     <tr>
  36.         <td><?php echo $row_sr['id_rubros']; ?></td>
  37.         <input name="rubro[<?php echo $row_sr['id_rubros']; ?>][rubro]" type="hidden" value="<?php echo $row_sr['id_rubros']; ?>" />
  38.         <input name="trienal" type="hidden" value="<? echo $row_tri['id_trienal']; ?>" />
  39.       <td><?php echo $row_sr['rubro']; ?> <span class="note"><span class="style1">*</span></span></td>
  40.         <?
  41.             while($anfios > 0){
  42.                 $anop = $anoinicio + $contador;
  43.         ?>
  44.                 <th><input type="text" size="12" name="ano[<? echo $cc; ?>][id]" id="ano[<? echo $cc; ?>]" value="0" /></th>
  45.         <?      $anfios = $anfios - 1;
  46.                 $contador = $contador + 1;
  47.                 $cc++;
  48.             }
  49.         ?>
  50.     </tr>  
  51.     <? }while($row_sr = mysql_fetch_assoc($sr)); ?>
  52.     <tr>
  53.         <td colspan="<? $c = $anos + 2; echo $c; ?>">
  54.             <input type="submit" value="Guardar Presupuesto" />
  55.         </td>
  56.     </tr>
  57.     </form>
  58. </table>

Bueno hasta ahí es el formulario que envia que visto desde el localhost es asi:



Bueno hasta ahí segun yo todo bien.

Para recibir tengo este archivo llamado recibir.code.php el cual opera de la sguiente forma:

Código PHP:
Ver original
  1. <?
  2. $rubro = $_POST['rubro'];
  3. $ano = $_POST['ano'];
  4.  
  5. foreach($rubro as $ru){
  6.    
  7.     $rubr = $ru['rubro'];
  8.     echo $rubr."--<br>";
  9.    
  10.     foreach($ano as $an){
  11.         $anio = $an['id'];
  12.         echo $anio."<br>";
  13.         #echo $ru."<br>";
  14.     }
  15.    
  16. }  
  17. ?>

Y este es el resultado obtenido:



Si se fijan al inicio dice

1--
200
300
400
500
...
5--
200
300
400
500

El problema esta en que en el rubro 5-- envio esos datos:
5--
200
300
400
500

En los demas envio 100, 100, 100, 100
Pero solo recibe lo del quinto rubro y solo imprime ese rubro, aunque los numeros van correlativamente.

No he logrado solucionar mi problema, alguno de ustedes podría ayudarme a que saque las cantidades correctas de cada rubro enviado y que no muestre únicamente los del quinto?

De antemano muchas gracias
Saludos