Hola, tengo una duda que me trae de cabeza. Tengo un catalogo de productos alimentado dinámicamente, y generado por un bucle for. Tengo dos variables que extraer del mismo con un form, una con un check box y otra hidden. El problema está en que el array para el checkbox funciona perfecto y lo relaciona con el producto correspondiente, sin embargo, la del hidden la interpreta como un orden correlativo, de modo que si selecciono 3 productos diferentes, el primer array lo hace con los productos seleccionados pero el hidden lo hace con los productos 1, 2 y 3. Esto a pesar de que al revisar el código fuente de la página de salida, el value del input hidden es el correcto.
Alguna idea, o si ven algo raro en el bucle que pueda generar este error en la iteración del segundo array¿?
Acoto también que generar 2 bucles diferentes uno para cada variable no funcionó, en la segunda variable la iteración daba como resultado un array de todos los productos y no del seleccionado.
Código PHP:
<div id="shopping-cart">
<img src="xxxxxxxxxxxx" width="40" height="40" alt="shopping cart icon" /> <h3>Artículos Seleccionados</h3>
<ul>
<?
if (isset($_POST["producto"],$_POST["precio"]))
{
$producto = $_POST["producto"];
$precio = $_POST["precio"];
for($count = 0; $count < sizeof($producto); $count++)
{ ?>
<li>
<? echo $producto[$count]; ?>
<? echo $precio[$count]; ?>
</li>
<?
}
}
?>
</ul>
</div>
<form action="catalogo.php" name="pedidos" method="POST" >
<p class="enunciados">Selecciona todos los artículos que deseas comprar y luego haz click en el botón cotizar</p><input type="submit" value="Cotizar" name="enviar" class="floated-button" /><input type="reset" value="Borrar todo" class="floated-button" />
<?
$query2="SELECT * FROM catalogo ORDER BY id asc";
$resul2=mysql_query($query2);
$numresults2=mysql_num_rows($resul2);
?>
<ul id="catalogo">
<?
for ($a=0; $a <$numresults2; $a++)
{ $row2=mysql_fetch_array($resul2);
?>
<li class="<? echo ($row2['categoria']);?>">
<span>
<? echo ($row2['codigo']).' | '.($row2['categoria']).' <input type="checkbox" name="producto[]" value="'.($row2['codigo']).' '.($row2['nombre']).' '.number_format(($row2['precio']),2,",",".").'" style="float:right; margin-top:0px;"/>'.
' <input type="hidden" name="precio[]" value="'.number_format(($row2['precio']),2,",",".").'" />';?>
<br /></span>
<img src="<? echo ($row2['foto']); ?>" alt="<? echo ($row2['foto_alt']); ?>" />
<p><strong>
<? echo ($row2['nombre']); ?>
</strong><br />
<? echo '<strong>Modelo:</strong> '.($row2['modelo']); ?>
<br />
<? echo '<strong>Marca:</strong> '.($row2['marca']); ?>
<br />
<? echo '<strong>Precio:</strong> '.number_format(($row2['precio']),2,",","."); ?>
<br />
<? echo '<strong>Descripción:</strong></p>'.'<p style="line-height:1em;">'.($row2['descripcion']).'</p>'; ?>
</li>
<?
}
?>
</ul><br />
<p class="enunciados">Selecciona todos los artículos que deseas comprar y luego haz click en el botón cotizar</p><input type="submit" value="Cotizar" name="enviar" class="floated-button" /><input type="reset" value="Borrar todo" class="floated-button" />
</form>
</div>
</div>