Foros del Web » Programando para Internet » PHP »

problema con variable que no llega

Estas en el tema de problema con variable que no llega en el foro de PHP en Foros del Web. Esta es una funcion con la saco por pantalla una tabla for ($i=0;$i<$this->num_productos;$i++){ $n=$i; if($this->array_id_prod[$i]!=0){ echo '<tr>'; echo "<td>" . $this->array_nombre_prod[$i] . "</td>"; echo "<td>" ...
  #1 (permalink)  
Antiguo 06/05/2007, 16:45
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 2 meses
Puntos: 0
problema con variable que no llega

Esta es una funcion con la saco por pantalla una tabla
for ($i=0;$i<$this->num_productos;$i++){
$n=$i;
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_cantidad[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '<td><form method="POST" action="modificar_producto.php">Nueva Cantidad:<input type="text" name="cantidad" size="3"><input type="hidden" name="id" value="'.$i.'"><input type="Submit" name="enviar" value="Modificar"></td>';

echo '</tr>';
$suma += ($this->array_precio_prod[$i]*$this->array_cantidad[$i]);
}
lo que quiero hacer en el formulario del ultimo campo es,que si alguien quiere modificar la cantidad elegida al principio ponga una nueva,y el campo id seria el numero de linea que hay que modificar en el array
y en la otra pagina donde recibo los valores simplemnete llamo a una funcion que lo actualiza
$cantidad=$_POST["cantidad"];
$linea=$_REQUEST["id"];
$_SESSION["ocarrito"]->modificar_producto($linea,$cantidad);

pero el campo id no llega a la pagina de destino y por lo tanto no actualiza,bueno,mejor dicho,con el ultimo registro de la tabla funciona perfecto pero con el resto no hace nada.Alguna solucion?
  #2 (permalink)  
Antiguo 07/05/2007, 00:03
Avatar de tozanni  
Fecha de Ingreso: mayo-2007
Ubicación: Seattle, WA
Mensajes: 62
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: problema con variable que no llega

El problema es que en el ciclo for estas repitiendo el tag input name='id', y resulta que los repetidos se eliminan y efectivamente te vas a quedar con el ultimo. Para evitar eso puedes usar cambiar el nombre del hidden "id[]" y PHP los va a interpretar como un arreglo con todas las llaves...
  #3 (permalink)  
Antiguo 07/05/2007, 06:04
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema con variable que no llega

No acabo de pillar lo del nombre.Como lo pongo "id[$i]"?Y luego para recogerla seria $linea=$_REQUEST["id[$i]"];?Es que he estado probando pero no lo acepta de ninguna manera....
  #4 (permalink)  
Antiguo 27/05/2007, 04:21
Avatar de tozanni  
Fecha de Ingreso: mayo-2007
Ubicación: Seattle, WA
Mensajes: 62
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: problema con variable que no llega

Tienes que hacer que tu forma se vea mas o menos asi:

Código PHP:
<form ... >
<
input name="id[]" value="1"  type="hidden "/>Producto 1
<input name="id[]" value="2"  type="hidden "/>Producto 2
<input name="id[]" value="3"  type="hidden "/>Producto 3
</form
Asi al enviar la forma recibiras un arreglo de ids como si lo hubieras creado con: $id = array(1,2,3).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:39.