Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ksp en 12 Abril 2012, 15:19 pm



Título: input dinámico
Publicado por: ksp en 12 Abril 2012, 15:19 pm
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
  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. $años = $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($años > 0){
  22. $anop = $anoinicio + $contador;
  23. ?>
  24. <th><? echo $anop; ?></th>
  25. <? $años = $años - 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>
  59.  
  60.  

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

(http://i40.tinypic.com/262md6w.jpg)

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
  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. $año = $an['id'];
  12. echo $año."<br>";
  13. #echo $ru."<br>";
  14. }
  15.  
  16. }
  17. ?>
  18.  

Y este es el resultado obtenido:

(http://i39.tinypic.com/143id08.jpg)

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


Título: Re: input dinámico
Publicado por: ksp en 12 Abril 2012, 15:47 pm
Por cierto estoy recibiendo esto:

Incluí este pedazo de código:

Código
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';
  4.  

Esto es lo que muestra:

Código
  1.  
  2. (
  3.    [rubro] => Array
  4.        (
  5.            [1] => Array
  6.                (
  7.                    [rubro] => 1
  8.                )
  9.  
  10.            [2] => Array
  11.                (
  12.                    [rubro] => 2
  13.                )
  14.  
  15.            [3] => Array
  16.                (
  17.                    [rubro] => 3
  18.                )
  19.  
  20.            [4] => Array
  21.                (
  22.                    [rubro] => 4
  23.                )
  24.  
  25.            [5] => Array
  26.                (
  27.                    [rubro] => 5
  28.                )
  29.  
  30.        )
  31.  
  32.    [trienal] => 3
  33.    [ano] => Array
  34.        (
  35.            [1] => Array
  36.                (
  37.                    [id] => 200
  38.                )
  39.  
  40.            [2] => Array
  41.                (
  42.                    [id] => 300
  43.                )
  44.  
  45.            [3] => Array
  46.                (
  47.                    [id] => 400
  48.                )
  49.  
  50.            [4] => Array
  51.                (
  52.                    [id] => 500
  53.                )
  54.  
  55.        )
  56.  
  57. )
  58. 1--
  59. 200
  60. 300
  61. 400
  62. 500
  63. 2--
  64. 200
  65. 300
  66. 400
  67. 500
  68. 3--
  69. 200
  70. 300
  71. 400
  72. 500
  73. 4--
  74. 200
  75. 300
  76. 400
  77. 500
  78. 5--
  79. 200
  80. 300
  81. 400
  82. 500
  83.  
  84.  


Título: Re: input dinámico
Publicado por: ksp en 12 Abril 2012, 16:27 pm
please help  ;D