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<?
#Consulta selecciona rubros
#Consulta selecciona plan y años
#Resultados de ambas consultas correctos y con datos.
$anos = 4;
$anoinicio = 2012;
$anios = $anos;
$contador = 0;
$cont = 0;
?>
#Formulario dentro de Tabla
<table>
<tr>
<th>ID</th>
<th>Rubro</th>
<?
while($anios > 0){
$anop = $anoinicio + $contador;
?>
<th><? echo $anop; ?></th>
<? $anios = $anios - 1;
$contador = $contador + 1;
}
?>
</tr>
<form name="form1" action="recibir.code.php" method="post">
<? do{
$cc = 1;
$anfios = $anos;
?>
<tr>
<td><?php echo $row_sr['id_rubros']; ?></td>
<input name="rubro[<?php echo $row_sr['id_rubros']; ?>][rubro]" type="hidden" value="<?php echo $row_sr['id_rubros']; ?>" />
<input name="trienal" type="hidden" value="<? echo $row_tri['id_trienal']; ?>" />
<td><?php echo $row_sr['rubro']; ?> <span class="note"><span class="style1">*</span></span></td>
<?
while($anfios > 0){
$anop = $anoinicio + $contador;
?>
<th><input type="text" size="12" name="ano[<? echo $cc; ?>][id]" id="ano[<? echo $cc; ?>]" value="0" /></th>
<? $anfios = $anfios - 1;
$contador = $contador + 1;
$cc++;
}
?>
</tr>
<tr>
<td colspan="<? $c = $anos + 2; echo $c; ?>">
<input type="submit" value="Guardar Presupuesto" />
</td>
</tr>
</form>
</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<?
$rubro = $_POST['rubro'];
$ano = $_POST['ano'];
foreach($rubro as $ru){
$rubr = $ru['rubro'];
echo $rubr."--<br>";
foreach($ano as $an){
$anio = $an['id'];
echo $anio."<br>";
#echo $ru."<br>";
}
}
?>
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