Foros del Web » Programando para Internet » PHP »

problema con una tabla

Estas en el tema de problema con una tabla en el foro de PHP en Foros del Web. En este codigo intento realizar una tabla que vaya mostrando los productos de un carro de la compra.El problema lo tengo en que por defecto,cada ...
  #1 (permalink)  
Antiguo 12/03/2007, 07:01
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 9 meses
Puntos: 0
problema con una tabla

En este codigo intento realizar una tabla que vaya mostrando los productos de un carro de la compra.El problema lo tengo en que por defecto,cada vez que introduzco un producto introduce 1,y quiero habilitar una opcion para modificar la cantidad en la misma tabla,sin necesidad de ir a otra pagina.En una celda de la tabla pongo un caja de texto donde introducir la nueva cantidad,pero no se como pasarlo por parametro a modificar_producto para que llame a la funcion para modificar la cantidad.Se puede poner en la celda de una tabla un formulario de un campo por ejemplo,asi a saco?
for ($i=0;$i<$this->num_productos;$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>";

//aqui es donde dejo la caja para poner la nueva cantidad y llamo a la funcion para modificarla
echo '<td>Nueva Cantidad:<input type="text" name="cantidad" size="3"></td>';
echo "<td><a href='modificar_producto.php?linea=$i&cant=$cantid ad'>Modificar producto</td>";


echo '</tr>';
$suma += $this->array_precio_prod[$i]*$this->cantidad;
}
  #2 (permalink)  
Antiguo 12/03/2007, 07:38
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: problema con una tabla

Creo que lo que te conviene es ponerle un formulario a toda la tabla y renombrar cada input como campo_ID (p.e.j campo_1, campo_5).

Código PHP:
<input type="text" name="cantidad_<?php echo $i;?>" size="3">

Donde procesas la información destripas el nombre del campo para obtener ese "id"... y dicho producto es el que modificas.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 12/03/2007, 13:30
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con una tabla

No acabo de entender lo que me has puesto.
Es decir,yo el articulo a modificar ya lo tengo,lo obtengo e pasar el parametro $i
Lo que quiero es pasar la nueva cantidad por parametro para en la funcion modificar con el articulo y la nueva cantidad actualizarlo
  #4 (permalink)  
Antiguo 12/03/2007, 13:50
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: problema con una tabla

Cita:
Iniciado por laudrup Ver Mensaje
Lo que quiero es pasar la nueva cantidad por parametro para en la funcion modificar con el articulo y la nueva cantidad actualizarlo
No podras pasar la cantidad por parametro con un simple link, por que? porque para cuando el usuario cambie la cantidad el link ya va a estar "pintado" en el HTML.

Debes usar un formulario con un boton submit, para que los campos cantidad se envien donde procesas la informacion.

Lo que yo coloque mas arriba es la manera de generar campos para varios productos y que luego los puedas identificar en la otra pagina gracias a su indice.

cantidad_indice
cantidad_<?php echo $i;?>


Si es un producto unico, te evitas este paso... pero el del formulario se me hace que no.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #5 (permalink)  
Antiguo 12/03/2007, 15:02
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con una tabla

Ok,gracias,ya estoy probando con el formulario,solo una pregunta mas
esto lo tengo hecho
for ($i=0;$i<$this->num_productos;$i++)
{
.....
echo '<td><form method="POST" action="modificar_producto.php">Nueva Cantidad:<input type="text" name="cantidad" size="3"><input type="hidden" name="linea" value="$i"><input type="Submit" name="enviar" value="Enviar"></td>';
........
}
en el formulario paso lo que necesito para llamar a la funcion, la cantidad nueva y $i que seria el indice del array con la informacion del producto
La cantidad la recibo correctamente pero no la linea
$cantidad=$_POST["cantidad"];
echo $cantidad;
$linea=$_POST["linea"];
echo $linea;
  #6 (permalink)  
Antiguo 12/03/2007, 15:10
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: problema con una tabla

Lógico:

Código PHP:
<input type="hidden" name="linea" value="$i"
Deberia ser:

Código PHP:
<input type="hidden" name="linea" value="<?php echo $i;?>">
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #7 (permalink)  
Antiguo 12/03/2007, 15:50
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: problema con una tabla

<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>

Estaba viendo esta linea en tu codigo y la verdad es que esa forma de borrar es muy insegura... cualquiera puede escribir algo como eliminar_producto.php?linea=2 y borrarte un producto al azar... te recomiendo el POST que es más seguro y efectivo.

Saludos...
__________________
Cambiando mi Web... sean pacientes :P
  #8 (permalink)  
Antiguo 12/03/2007, 17:31
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con una tabla

Ya me di cuenta del fallo de antes,pero sigue sin ir.El valor de "i" no lo coge.POngo el codigo entero a ver si alguien ve algun fallo por algun lado por que la verdad es que esto me corre cierta prisa y me esta sacando de quicio
//Aqui la funcion para imprimir la informcion
function imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Cantidad</b></td>
<td><b>Precio</b></td>
<td> </td>
</tr>';
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="<?PHP echo $i; ?>"><input type="Submit" name="enviar" value="Modificar"></td>';

echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//y aqui donde recojo los valores en la optra pagina para llamar a la funcion
?php
$cantidad=$_POST["cantidad"];
echo $cantidad;
$linea=$_POST["id"];
echo $linea;
?>
He probado a introducir los 2 valores en una tabla para probar y cantidad lo introduce bien pero en la el valor de "i" introduce directamente <?php echo $i;?> como valor(puse un campo varchar en la tabla)
Y tengo hecho lo mismo de pasar un parametro asi en otras paginas y funcionan correctamente,no se que le pasa aqui,no veo el fallo....
  #9 (permalink)  
Antiguo 12/03/2007, 18:43
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: problema con una tabla

Nuevamente, es lógico que no funcione. Yo no me di cuenta que ese input estaba dentro de un echo, por eso coloque los tags de php y un echo. El problema sigue existiendo porque php no interpreta las variables cuando estas estan entre comillas simples, como en tu caso:

Código PHP:
<?
$variable 
"Juan";
echo 
'Mi nombre es $variable';
?>
Solucion? o te pasas a comillas dobles o concatenas la variable:


Código PHP:
<?
$variable 
"Juan";
echo 
"Mi nombre es $variable";
?>

Código PHP:
<?
$variable 
"Juan";
echo 
'Mi nombre es ' $variable;
?>

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #10 (permalink)  
Antiguo 12/03/2007, 20:27
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: problema con una tabla

Aquí tienes otro error:

echo '<td><form method="POST" action="modificar_producto.php">Nueva Cantidad:<input type="text" name="cantidad" size="3"><input type="hidden" name="id" value="<?PHP echo $i; ?>"><input type="Submit" name="enviar" value="Modificar"></td>';

Esa linea esta muy mal ahí... ya estas en el codigo PHP y lo esta volviendo a abrir...

Esto esta correcto:

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>';

Eso es correcto. Espero que te ayude...

Saludos
__________________
Cambiando mi Web... sean pacientes :P
  #11 (permalink)  
Antiguo 12/03/2007, 20:33
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: problema con una tabla

Cita:
Iniciado por DarkXNightmare Ver Mensaje
Aquí tienes otro error:
Si te fijas con atención, es parte lo que acabo de señalar.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #12 (permalink)  
Antiguo 13/03/2007, 02:31
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con una tabla

Ok,ya lo arregle y ya funciona
Muchas gracias a los 2
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 14:06.