input dinámico

Iniciado por ksp, 12 Abril 2012, 15:19 PM

0 Miembros y 1 Visitante están viendo este tema.

ksp

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) [Seleccionar]

<?
#Consulta selecciona rubros
#Consulta selecciona plan y años
#Resultados de ambas consultas correctos y con datos.

$anos = 4;
$anoinicio = 2012;
$años = $anos;
$contador = 0;
$cont = 0;

?>

#Formulario dentro de Tabla

<table>
<tr>
<th>ID</th>
        <th>Rubro</th>
<?
while($años > 0){
$anop = $anoinicio + $contador;
?>
<th><? echo $anop; ?></th>
<? $años = $años - 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>
<? }while($row_sr = mysql_fetch_assoc($sr)); ?>
<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) [Seleccionar]
<?
$rubro = $_POST['rubro'];
$ano = $_POST['ano'];

foreach($rubro as $ru){

$rubr = $ru['rubro'];
echo $rubr."--<br>";

foreach($ano as $an){
$año = $an['id'];
echo $año."<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

ksp

Por cierto estoy recibiendo esto:

Incluí este pedazo de código:

Código (php) [Seleccionar]

echo '<pre>';
print_r($_POST);
echo '</pre>';


Esto es lo que muestra:

Código (php) [Seleccionar]


Array
(
    [rubro] => Array
        (
            [1] => Array
                (
                    [rubro] => 1
                )

            [2] => Array
                (
                    [rubro] => 2
                )

            [3] => Array
                (
                    [rubro] => 3
                )

            [4] => Array
                (
                    [rubro] => 4
                )

            [5] => Array
                (
                    [rubro] => 5
                )

        )

    [trienal] => 3
    [ano] => Array
        (
            [1] => Array
                (
                    [id] => 200
                )

            [2] => Array
                (
                    [id] => 300
                )

            [3] => Array
                (
                    [id] => 400
                )

            [4] => Array
                (
                    [id] => 500
                )

        )

)
1--
200
300
400
500
2--
200
300
400
500
3--
200
300
400
500
4--
200
300
400
500
5--
200
300
400
500


ksp