Foros del Web » Programando para Internet » PHP »

Problema con carrito de compras

Estas en el tema de Problema con carrito de compras en el foro de PHP en Foros del Web. Buenos días, tengo un problema con un carrito de compras. Me inserta todo los productos bien, pero el problema me surge cuando quiero enviar a ...
  #1 (permalink)  
Antiguo 25/10/2005, 03:08
 
Fecha de Ingreso: octubre-2005
Mensajes: 2
Antigüedad: 12 años, 1 mes
Puntos: 0
Problema con carrito de compras

Buenos días, tengo un problema con un carrito de compras. Me inserta todo los productos bien, pero el problema me surge cuando quiero enviar a un e-mail todos los productos que tengo en el carrito, ya que solo me envía el último añadido y no todos, como debería. Espero que me puedan ayudar. Un saludo y gracias de antemano.

Codigo:
<?
session_start();
?>
<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_Ref_prod;
var $array_Desc_prod;
var $array_Price_prod;
var $array_Talla_prod;
//constructor. Realiza las tareas de inicializar los objetos cuando se instancian
//inicializa el numero de productos a 0
function carrito () {
$this->num_productos=0;
}
//Introduce un producto en el carrito. Recibe los datos del producto
//Se encarga de introducir los datos en los arrays del objeto carrito
//luego aumenta en 1 el numero de productos
function introduce_producto($Ref_prod,$Desc_prod,$Price_pro d,$Talla_prod){
$this->array_Ref_prod[$this->num_productos]=$Ref_prod;
$this->array_Desc_prod[$this->num_productos]=$Desc_prod;
$this->array_Price_prod[$this->num_productos]=$Price_prod;
$this->array_Talla_prod[$this->num_productos]=$Talla_prod;
$this->num_productos++;
}
//Muestra el contenido del carrito de la compra
//ademas pone los enlaces para eliminar un producto del carrito
function imprime_carrito(){
echo '<table width=500 border=0 cellpadding="0" cellspacing="0">
<tr>
<td width=150 class=header></td>
<td width=125 class=header>Desc</td>
<td width=125 class=header>Talla</td>
<td width=30 class=header>€</td>
<td width=95 align=right class=header></td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
echo '<tr>';
echo "<td width=150 class=text>" . $this->array_Ref_prod[$i] . "</td>";
echo "<td width=125 class=text>" . $this->array_Desc_prod[$i] . "</td>";
echo "<td width=30 class=text>" . $this->array_Talla_prod[$i] . "</td>";
echo "<td width=30 class=text>" . $this->array_Price_prod[$i] . "</td>";
echo "<td width=95 align=right class=text><a href=eliminar_producto.php?linea=$i>Delete</td>";
echo '</tr>';
$Subtotal += $this->array_Price_prod[$i];
$Ref = $this->array_Ref_prod[$i];
$Talla = $this->array_Talla_prod[$i];

}
echo "</table>";
echo "<CENTER><B> <font color=BF0203>PORTES NO INCLUIDOS EN EL PRECIO</font> </B></CENTER>";
echo "<p><font color=FFFFFF><b>Subtotal: $Subtotal €</b></font></p>";
echo "<table border=0 cellpadding=0 cellspacing=0 width=500>
<tr>
<td width=500>
<p align=center><a href=/index.php>
<img border=0 src=/images/continue_shopping.jpg width=166 height=22></a></td>
</tr>
</table><BR><BR>";

echo "<form enctype=multipart/form-data method=post action=sendOK.php>
<table border=0 cellpadding=0 cellspacing=0 width=500 height=164>
<INPUT TYPE=hidden name=Ref value=$Ref>
<INPUT TYPE=hidden name=Talla value=$Talla>
<INPUT TYPE=hidden name=Subtotal value=$Subtotal>
<tr>
<td width=500 class=header>
&nbsp;Solicitud de pedido</td>
</tr>
<tr>
<td width=500 height=152 class=text>
<p align=center>
Nombre:
<input type=text name=nombre size=9 class=text>&nbsp;
Apellidos:
<input type=text name=apellidos size=9 class=text>&nbsp;
Direccion:
<input type=text name=direccion size=13 class=text>&nbsp;<br>
<br>
CP:
<input type=text name=cp size=6 class=text>
Localidad:
<input type=text name=localidad size=11 class=text>&nbsp; Provincia:
<input type=text name=provincia size=11 class=text>&nbsp; <br>
<br>
Pais:
<input type=text name=pais size=11 class=text>&nbsp;
E- Mail:
<input type=text name=email size=30 class=text></p>

<p align=center>

<input name=boton type=submit value=Enviar class=textsend></td>
</tr>
</table>
</FORM>";

}

//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
//no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
function elimina_producto($linea){
$this->array_Ref_prod[$linea]=Vacio;
$this->array_Desc_prod[$linea]=Vacio;
$this->array_Price_prod[$linea]=Vacio;
$this->array_Talla_prod[$linea]=Vacio;

}
}
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>

Código sendOK.php:

<?
$Talla=$_POST['Talla'];
$Ref=$_POST['Ref'];
$Subtotal=$_POST['Subtotal'];
$Codigo=$nombre.$apellidos;
mail("[email protected]","Solicitud de Pedido","<b>Código Transferencia:</b> ".$Codigo."<br><br><b>Ref:</b> ".$Ref."<br><b>Talla:</b> ".$Talla."<br><br><b>Subtotal:</b> ".$Subtotal." €<br><br><b>Nombre:</b> ".$nombre."<br><b>Apellidos:</b> ".$apellidos."<br><b>Direccion:</b> ".$direccion."<br><b>CP:</b> ".$cp."<br><b>Localidad:</b> ".$localidad."<br><b>Provincia:</b> ".$provincia."<br><b>Pais:</b> ".$pais."<br><b>E-mail:</b> ".$email, 'Content-Type: text/html;charset=iso-8859-1');
?>
  #2 (permalink)  
Antiguo 25/10/2005, 07:20
 
Fecha de Ingreso: octubre-2005
Mensajes: 10
Antigüedad: 12 años, 1 mes
Puntos: 0
Cita:
Iniciado por blaze
Código sendOK.php:
<?
$Talla=$_POST['Talla'];
$Ref=$_POST['Ref'];
$Subtotal=$_POST['Subtotal'];
$Codigo=$nombre.$apellidos;
mail("[email protected]","Solicitud de Pedido","<b>Código Transferencia:</b> ".$Codigo."<br><br><b>Ref:</b> ".$Ref."<br><b>Talla:</b> ".$Talla."<br><br><b>Subtotal:</b> ".$Subtotal." €<br><br><b>Nombre:</b> ".$nombre."<br><b>Apellidos:</b> ".$apellidos."<br><b>Direccion:</b> ".$direccion."<br><b>CP:</b> ".$cp."<br><b>Localidad:</b> ".$localidad."<br><b>Provincia:</b> ".$provincia."<br><b>Pais:</b> ".$pais."<br><b>E-mail:</b> ".$email, 'Content-Type: text/html;charset=iso-8859-1');
?>
Ahí sólo estás enviando un único producto, como tú bien decías el último... Para solucionarlo tienes que hacer un bucle que te vaya metiendo en una cadena los datos de el pedido sobre el que estés iterando en ese momento... y despues envías esa cadena por mail... no? ns bms!!!!
  #3 (permalink)  
Antiguo 25/10/2005, 14:43
 
Fecha de Ingreso: octubre-2005
Mensajes: 2
Antigüedad: 12 años, 1 mes
Puntos: 0
Graciasss

Tio muchas gracias por tu ayuda. Un abrazo
  #4 (permalink)  
Antiguo 02/11/2005, 05:21
 
Fecha de Ingreso: marzo-2002
Mensajes: 86
Antigüedad: 15 años, 8 meses
Puntos: 0
Como se puede saber el número de artículos del carrito?

hola,

Como se puede calcular el número de artículos del carrito? para que me diga numero de articulos: x

Como puedo evitar que se introduzca un mismo producto por duplicado?
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 20:38.