Comunidad de diseño web y desarrollo en internet online

Problema con un búcle para 2 arrays cada uno a una variable distinta

Citar            
MensajeEscrito el 10 Sep 2011 02:52 pm
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¿?

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>

Por mike2586

8 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 10 Sep 2011 02:55 pm
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.

Por mike2586

8 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 10 Sep 2011 04:24 pm
lo que tienes que hacer es relacionar esos 2 arrays de alguna forma, yo te pongo un script de ejemplo analizalo y vee

Código PHP :

<html lang="en" dir="ltr" id="developer-mozilla-org">
<head>
  <title>browser - MDN Docs</title>
  <script type="text/javascript">
   /*function interno ()
   {
      alert("sss");
      alert(window);
      alert(window.xul);
   }
   window.hi = "mensaje del hijo interno";
   document.nuevo = "sadsad";*/
  </script>
</head>
<body style="font-size:10px; font-family:verdana">
<code>
<pre>
<?php empty($_POST)?false:var_dump($_POST);?>
</pre>
</code>
   <form action="" method="post">
   <h1>Tu Forma</h1>
   <button type="submit">enviar</button>
<?php for($i=1;$i<10;$i++):?>
   <br />
   <input id="prod_<?php echo $i;?>" type="checkbox" name="producto[]" value="<?php echo "prod_$i"?>"/>
   <label for="prod_<?php echo $i;?>">producto <?php echo $i;?></label>
   <input type="hidden" name="precio[]" value="<?php echo rand(3,5);?>" />
<?php endfor;?>
   </form>
   <form action="" method="post">
      <h1>Esta la MIA</h1>
      <button type="submit">enviar</button>
   <?php for($i=1;$i<10;$i++):?>
      <br />
      <input id="pro_<?php echo $i;?>" type="checkbox" name="producto[<?php echo $i;?>]" value="<?php echo "prod_$i"?>"/>
      <label for="pro_<?php echo $i;?>">producto <?php echo $i;?></label>
      <input type="hidden" name="precio[<?php echo $i;?>]" value="<?php echo rand(3,5);?>" />
   <?php endfor;?>
      </form>
</body>
</html>

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.