Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/11/2005, 08:50
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo que te he comentado anteriormente sería:
(disculpen separar los mensajes .. pero se me fué la LUZ! cuando lo tenía ya casi todo escrito!!!, me dió miedo!, no tengo UPS'ssss ;(


Aprovechando tu método imprime_carrito() que lo que hace en el fondo es generar HTML .. (leyendo los datos del objeto que los gestiona):

Código PHP:
function _genera_carrito(){ 
        
$suma 0
        
$carrito '<table border=1 cellpadding="3"> 
              <tr> 
                <td><b>Nombre producto</b></td> 
                <td><b>Precio</b></td> 
                <td>&nbsp;</td> 
              </tr>'

        for (
$i=0;$i<$this->num_productos;$i++){ 
            if(
$this->array_id_prod[$i]!=0){ 
                
$carrito .= '<tr>'
                
$carrito .= "<td>" $this->array_nombre_prod[$i] . "</td>"
                
$carrito .= "<td>" $this->array_precio_prod[$i] . "</td>"
                
$carrito .= "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>"
                
$carrito .= '</tr>'
                
$suma += $this->array_precio_prod[$i]; 
            } 
        } 
        
//muestro el total 
        
$carrito .= "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>"
        
//total más IVA 
        
$carrito .= "<tr><td><b>IVA (21%):</b></td><td> <b>" $suma 1.21 "</b></td><td>&nbsp;</td></tr>"
        
$carrito .= "</table>"

   
// devolver el resultado al llamarse.
   
return $carrito;
    } 
De esta forma "separamos" un poco la "presentación de la lógica" (no del todo pero algo es algo por el momento y a la rápida).

Así .. puedo crear un método como el que tenías ya:

Código PHP:
function imprime_carrito(){
   echo 
$this->_genera_carrito();

Y bajo la misma filosofía podemos generar otro método para enviar el e-mail (en formato HTML):
Código PHP:
function enviar_email($de,$para,$asunto){

// Componer el cuerpo del mensaje .. añade tus "cabeceras y pié" del mismo si corresponde + lo que el método "_genera_carrito()" ya hace por sí solo.
$msg "<b>Solicitud Cotización</b><br><br>";
$msg .= $this->_genera_carrito()."<br><br>";
$msg .= "Fecha solicitud: ".date ("d/m/Y H:i:s")."<br>";
$msg .= "Desde IP:".$_SERVER['REMOTE_ADDR']."<br>";

// Cabeceras que definen que el e-mail es de formato HTML.
$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

$cabeceras .= 'From: '$de "\r\n";

mail($para,$asunto,$msg,$cabeceras);

Y usas estos métodos como usabas los otros (sobre todo el de imprime_carrito() por qué tras el cambio "interno" hará lo mismo que hacía antes).

Código PHP:
$_SESSION["ocarrito"]->enviar_email("[email protected]","[email protected]","Solicitud cotización desde la web"); 
El método nuevo "enviar_email()" requiere de los parámetros que ahí ves descritos. Puedes trabajar más el método ..por ejemplo para enviar una copia al solicitante y otra a quien lo tenga que atender .. etc .. etc ..

Por su puesto faltan muchas validaciones (sobre todo con respecto al envio del e-mail .. ) entre otras cosas.

Un saludo,

PD: (pensamiento interno) me parece que ya esto lo he hecho alguna vez más en el foro .. ?¡?'

Última edición por Cluster; 29/11/2005 a las 13:04