Foros del Web » Programando para Internet » PHP »

variable cantidad en php

Estas en el tema de variable cantidad en php en el foro de PHP en Foros del Web. Haciendo un carrito de la compra, solamente me falla la variable cantidad, es decir que me mantenga el numero de articulo que yo elija al ...
  #1 (permalink)  
Antiguo 27/06/2012, 07:32
 
Fecha de Ingreso: abril-2012
Ubicación: Soy de Utiel de erasmus en Varsovia
Mensajes: 49
Antigüedad: 12 años
Puntos: 2
variable cantidad en php

Haciendo un carrito de la compra, solamente me falla la variable cantidad, es decir que me mantenga el numero de articulo que yo elija al recargar la pagina en vez del 1 que me muestra siempre al recargarla.

Este es el codigo de la casilla donde inserto la variable cantidad:
<td><input name="c<?php echo $f['id'];?>" type="text" id="c<?php echo $f['id'];?>"
value="<?php if(isset($_SESSION['cantidad'][$f['id']])){
$total+=$_SESSION['cantidad'][$f['id']]*$f['precio'];
echo $_SESSION['cantidad'][$f['id']];
$cant=$_SESSION['cantidad'][$f['id']];
}else{
$total+=$f['precio'];
echo 1;
$cant=1;
}
?>" size="3" onkeyup="cantidad(this.id)" onkeypress="return solonumero(event)"></td>

Este es el ajax, aunque aqui en principio todo esta bien:
function cantidad(id)
{
//c1
//alert(id.substr(1));
var peti=requerir();
var url="proceso.php";
var valor=document.getElementById(id).value;
if valor<i || valor==""}
valor=1;

var vari="valor="+valor+"$id="+id.substr(1);
//alert(vari);
peti.open("POST",url,true);
peti.onreadystatechange = function(){
if(peti.readyState==4)
{
if(peti.status==200)
{
//alert(peti.responseText);
//location.reload();
document.getElementById('s'+id.substr(1)).value=pe ti.responseText;
total();

}else{
alert("Error --- "+peti.statusText);
}
}
};
peti.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
peti.send(vari);

Estoy aburrida buscando la solucion, a ver si alguien consigue ayudarme, saludos.
  #2 (permalink)  
Antiguo 27/06/2012, 07:55
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: variable cantidad en php

disculpa mi tono, pero los colaboradores también nos aburrimos de los usuarios que no siguen las reglas, utilice la herramienta highlight para mostrar código, consulte las políticas de foro.

además en ninguna parte del script veo que incrementes o decrementes la cantidad del artículo, aparte del código mal estructurado por eso es difícil de leer
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 27/06/2012, 10:41
Avatar de anewryzm  
Fecha de Ingreso: septiembre-2011
Mensajes: 47
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: variable cantidad en php

Cita:
Iniciado por maycolalvarez Ver Mensaje
disculpa mi tono, pero los colaboradores también nos aburrimos de los usuarios que no siguen las reglas, utilice la herramienta highlight para mostrar código, consulte las políticas de foro.

además en ninguna parte del script veo que incrementes o decrementes la cantidad del artículo, aparte del código mal estructurado por eso es difícil de leer
El tiene razón. Yo no soy colaborador ni nada, pero. cansa ver eso.

Otra mas. Has intentado usar POO con PHP ?... creo que el carrito te quedaria mejor :3
  #4 (permalink)  
Antiguo 27/06/2012, 11:31
 
Fecha de Ingreso: junio-2012
Ubicación: sabadell
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 6
Respuesta: variable cantidad en php

Bueno.. la verdad es que es bastante engorroso el leer así..
De todas formas te presento un planteamiento personal, y ya luego tu sacas tus propias conclusiones:

Código PHP:
// Partiendo desde 0.. lo que pretendes es añadir un articulo/producto al carro..
// En el momento que añades algo, inicialmente ha de partir como mínimo en una unidad..


//** CONCEPTO PARA AGREGAR UN PRODUCTO AL CARRO

if($nuevo// Nuevo puede ser un $_GET['producto_id'] o un $_POST['producto_id'], por ejemplo
 
{
   
// En primer lugar, comprovaremos si existe la session del carro
   
if(!isset($_SESSION['carrito'])) // No existe(el carro está vacio)
    
{
     
// Hemos de declarar los elementos con los que vamos a trabajar
     
$_SESSION['carrito'] = array(); // Donde almacenaremos todos los productos
     
$_SESSION['articulos'] = 0// El total numérico de los productos
    
}
   
   
// Ahora, el producto que hemos pasado através de la variable '$nuevo'..¿Existe dentro del carro? 
   
if(isset($_SESSION['carrito'][$nuevo])) // el producto ya estaba dentro del carro
    
{
      
// Posiblemente el usuario haya clickado varias veces encima del botón 'añadir al carro', por ejemplo.. tienes dos opciones:
      
$_SESSION['carrito'][$nuevo]; // Lo ignoras y dejas tal cual..
      
$_SESSION['carrito'][$nuevo]++; // Incrementas en 1 el número de unidades del producto
    
}
  
else 
// El producto no estaba dentro del carro
  

    
$_SESSION['carrito'][$nuevo] = 1// le damos un valor inicial al total de las unidades del producto
  

 }

//** CONCEPTO PARA MODIFICAR EL NUMERO DE UNIDADES DE UN PRODUCTO

if(isset($_POST['modificar'])) // En este caso hacemos uso de un formulario, donde utilizaremos los valores 'name' de los campos 'input' para trabajar
 
{
  foreach (
$_SESSION['carrito'] as $articulo_id => $qty// Desglosamos el carrito en  tantos productos como lo componen
   
{
     if(
$_POST[$articulo_id]=='0'// Si el usuario ha pasado un 0 como unidad numerica, borraremos el producto
     
{
       unset(
$_SESSION['carrito'][$articulo_id]);
     }
    else
     {
       
$_SESSION['carrito'][$articulo_id] = $_POST[$articulo_id];
     }
   }
 } 
>

Espero haber podido aclarar alguna duda o concepto al respecto(El código está improvisado, de manera que no se si existe algún tipo de error de sintaxy)..

Nota: Soy nuevo en el foro, aunque seguidor de muchos años, pido perdón por los errores que pueda cometer con el editor de textos!!
  #5 (permalink)  
Antiguo 24/07/2012, 10:33
 
Fecha de Ingreso: abril-2012
Ubicación: Soy de Utiel de erasmus en Varsovia
Mensajes: 49
Antigüedad: 12 años
Puntos: 2
Respuesta: variable cantidad en php

Cita:
Iniciado por dannelblogger Ver Mensaje
Bueno.. la verdad es que es bastante engorroso el leer así..
De todas formas te presento un planteamiento personal, y ya luego tu sacas tus propias conclusiones:

Código PHP:
// Partiendo desde 0.. lo que pretendes es añadir un articulo/producto al carro..
// En el momento que añades algo, inicialmente ha de partir como mínimo en una unidad..


//** CONCEPTO PARA AGREGAR UN PRODUCTO AL CARRO

if($nuevo// Nuevo puede ser un $_GET['producto_id'] o un $_POST['producto_id'], por ejemplo
 
{
   
// En primer lugar, comprovaremos si existe la session del carro
   
if(!isset($_SESSION['carrito'])) // No existe(el carro está vacio)
    
{
     
// Hemos de declarar los elementos con los que vamos a trabajar
     
$_SESSION['carrito'] = array(); // Donde almacenaremos todos los productos
     
$_SESSION['articulos'] = 0// El total numérico de los productos
    
}
   
   
// Ahora, el producto que hemos pasado através de la variable '$nuevo'..¿Existe dentro del carro? 
   
if(isset($_SESSION['carrito'][$nuevo])) // el producto ya estaba dentro del carro
    
{
      
// Posiblemente el usuario haya clickado varias veces encima del botón 'añadir al carro', por ejemplo.. tienes dos opciones:
      
$_SESSION['carrito'][$nuevo]; // Lo ignoras y dejas tal cual..
      
$_SESSION['carrito'][$nuevo]++; // Incrementas en 1 el número de unidades del producto
    
}
  
else 
// El producto no estaba dentro del carro
  

    
$_SESSION['carrito'][$nuevo] = 1// le damos un valor inicial al total de las unidades del producto
  

 }

//** CONCEPTO PARA MODIFICAR EL NUMERO DE UNIDADES DE UN PRODUCTO

if(isset($_POST['modificar'])) // En este caso hacemos uso de un formulario, donde utilizaremos los valores 'name' de los campos 'input' para trabajar
 
{
  foreach (
$_SESSION['carrito'] as $articulo_id => $qty// Desglosamos el carrito en  tantos productos como lo componen
   
{
     if(
$_POST[$articulo_id]=='0'// Si el usuario ha pasado un 0 como unidad numerica, borraremos el producto
     
{
       unset(
$_SESSION['carrito'][$articulo_id]);
     }
    else
     {
       
$_SESSION['carrito'][$articulo_id] = $_POST[$articulo_id];
     }
   }
 } 
>

Espero haber podido aclarar alguna duda o concepto al respecto(El código está improvisado, de manera que no se si existe algún tipo de error de sintaxy)..

Nota: Soy nuevo en el foro, aunque seguidor de muchos años, pido perdón por los errores que pueda cometer con el editor de textos!!

Disculpa dannelblogger, me habia desconectado de esta web tras leer los sapos que me soltaron, te pido disculpas por no contestar y te agradezco mucho tu ayuda, ahora comprobaré si lo que me dices puede solucionar mis dudas, un saludo y gracias de nuevo.

Etiquetas: cantidad, variables
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:43.