Foros del Web » Programando para Internet » PHP »

Ayuda con carrito

Estas en el tema de Ayuda con carrito en el foro de PHP en Foros del Web. Hola buenas, Pues llevo toda la tarde de hoy intentando hacerlo,pero no puedo.El caso es que quiero que si el usuario desea cambiar la cantidad ...
  #1 (permalink)  
Antiguo 03/11/2006, 12:23
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Ayuda con carrito

Hola buenas,

Pues llevo toda la tarde de hoy intentando hacerlo,pero no puedo.El caso es que quiero que si el usuario desea cambiar la cantidad a comprar de un producto en concreto pueda cambiarlo.

Aqui os muestro el codigo de mostrar el carrito:
Código PHP:
function anadir_carrito($producto){
global 
$host;
global 
$usuariodb;
global 
$contrasenadb;
global 
$basedatos;
if(!
$_GET['v'] == "n"){
    
conectardb($host,$usuariodb,$contrasenadb,$basedatos);
    
$sql="SELECT producto FROM productos WHERE id=$producto";
    
$querymysql_query($sql);
    
$resultadomysql_fetch_array($query);
    }

$item=$resultado[0];

$cantidad=$_POST['cantidad'];

$itemsEnCesta=$_SESSION['itemsEnCesta'];

if (
$item){
   if (!isset(
$itemsEnCesta)){
   
$itemsEnCesta[$item]=$cantidad;
   }else{
     foreach(
$itemsEnCesta as $k => $v){
 if (
$item==$k){

         
$itemsEnCesta[$k]+=$cantidad;
         
$encontrado=1;
         }
      }
      if (!
$encontrado){ $itemsEnCesta[$item]=$cantidad;}
        
   }
}
$_SESSION['itemsEnCesta']=$itemsEnCesta;

if (isset(
$itemsEnCesta)){
echo 
"<table style='margin: 0px;padding: 0px;'>";
   foreach(
$itemsEnCesta as $k => $v){

      echo 
"<tr><td><font style='font-weight: bold;color: #e98d2b;font-family: Verdana;font-size:0.8em;'>Producto: </font><font style='color: #000000;font-weight: bold;font-family: Verdana;font-size:0.8em;'>".$k."</font></td>
            <td style='padding-left: 50px;'><font style='font-weight: bold;color: #e98d2b;font-family: Verdana;font-size:0.8em;'> Unidades </font><form method='post' action='ac.php?v=n'><input type='text' name='cantidadc' size='1' value='"
.$v."' /><input type='text' name='cantidad' size='1' style='margin-left: 5px;'/><input type='submit' name='actucan' value='Cambiar Cantidad' style='margin-left: 5px;background-color: #e74a49;' /></form></td></tr>";
   }

Bueno,he probado muchas cosas y no me sale..por si no quedo claro lo que quiero,lo explico de nuevo,en el primer foreach se le suma la cantidad que viene desde la pagina del producto,el nombre viene por metodo GET (el parametro $producto) y la cantidad por metodo POST,lo que quiero es que si el usuario da en el boton "Cambiar cantidad" se cambie esa cantidad por la que tiene actuamente la sesion,he probado borrar la sesion y volver a crearla con la nueva cantidad pero no me da el resultado que espero ya que se me borran todos los productos..(enter muchas pruebas que e hecho).

Bueno,un saludo y muchas gracias de antemano!!
__________________
La chapucería de la esquina
  #2 (permalink)  
Antiguo 03/11/2006, 12:40
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Pues despues de un buen rato lo he consegido,lo que he hecho ha sido añadir esto antes de la condicion $item:
Código PHP:
if($_POST['actucan']){
$pro=$_GET['i'];
unset(
$itemsEnCesta[$pro]);
$cantidadnu=$_POST['cantidadnueva'];
$itemsEnCesta[$pro]=$cantidadnu;

Ahora el problema viene que el producto que cambio la cantidad me lo coloca al final,entonces mi duda ahora es como hacer para que no cambie la posicion en la que estan..
Alguien sabe??

Un Saludo!!
__________________
La chapucería de la esquina
  #3 (permalink)  
Antiguo 03/11/2006, 13:14
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Buenas de nuevo,

Parece que es postearlo aqui y que me salga todo..jaja..bueno ya lo tengo solucionado..solo habia que quitar del codigo anterior:
Código PHP:
unset($itemsEnCesta[$pro]); 
Ya con esto no se mueve la posicion,lo comento todo por si a alguien le ocurre algo parecido..

Bueno un saludo!!
__________________
La chapucería de la esquina
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 03:52.