Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/08/2003, 22:24
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cuando se trabaja con arrays que se generan por un formulario .. lo que se suele usar es definir el nombre de tu variabel del formulario como un array de indice automático:

Código PHP:
<table>
<?php
for ($i 1$i <= $inicio$i++)
{
?>
<tr> 
<td><input name="piezas[<? echo $i ?>]"></td>
<td><input name="kg[<? echo $i ?>]>"></td>
<td><input name="num_bins[<? echo $i ?>]"></td>
</tr>
<?php 
//fin for
?>
</table>
En tu script donde procesas ese formulario .. Si quieres leer array por array (campo por campo de tu formualrio) Se puede emplear un simple bucle foreach():

Código PHP:
<?
// POST o GET .. depende del formulario y su method empleado ..
foreach($_POST['piezas'] as $pieza){
   echo 
$pieza;
}
?>
Y .. ya está .. ahi tienes:
$_POST['piezas'][$i]

Por si quieres acceder a ese valor directo por el indice indicado ..

En estos casos .. se suele usar mucho para "organizar" los datos mejor el pasarlo a un array bidimensional para .. por ejemplo; guardarlo en una cookie o sessión (típico ejemplo de un "carrito de compras" ..)

Para ello puedes usar un bucle 'for' contando el total de elementos de uno de los arrays implicados .. y asignarlo al array bidimensional (asociativa):

ejemplo:
Código PHP:
<?
$incio
=count($_POST['piezas'];
for (
$i 1$i <= $inicio$i++){
// y usar su indice en los tres arrays implicados
$producto['pieza'][$i]=$_POST['piezas'][$i];
$producto['kg'][$i]=$_POST['kg'][$i];
$producto['num_bins'][$i]=$_POST['num_bins'][$i];
}
?>

Un saludo,

pd: .. a todos nos ha pasado eso, al no conocer que existe [] y que lo podemos usar como nombre de variable de un formulario .. empezamos a buscar "cómo crear variables dinámicamente" ... Pero creo que la solución más "límpia" y óptima es la de usar [].
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 28/08/2003 a las 22:27