Foros del Web » Programando para Internet » PHP »

Mail con cuerpo html

Estas en el tema de Mail con cuerpo html en el foro de PHP en Foros del Web. Pues he creado un código pero estoy un poco espeso y, aunque funciona , quizas haya alguna manera de hacerlo mas correcta, entre otras cosas ...
  #1 (permalink)  
Antiguo 05/04/2012, 13:19
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 16 años, 11 meses
Puntos: 3
Mail con cuerpo html

Pues he creado un código pero estoy un poco espeso y, aunque funciona, quizas haya alguna manera de hacerlo mas correcta, entre otras cosas no me gusta el usar tanto elseif.

Código PHP:
if ($value!=""){
                if (
$line>13 && $line<21 && $nivel!=1){$inhal .= "<tr><td>Entrada</td></tr>\n";$nivel=1;
                }elseif (
$line>20 && $line<44 && $nivel!=2){$inhal .= "<tr><td>Salon comedor</td></tr>\n";$nivel=2;
                }elseif (
$line>43 && $line<57 && $nivel!=3){$inhal .= "<tr><td>Sala de estar</td></tr>\n";$nivel=3;
                }elseif (
$line>56 && $line<64 && $nivel!=4){$inhal .= "<tr><td>Dormitorio 1</td></tr>\n";$nivel=4;
                }elseif (
$line>63 && $line<75 && $nivel!=5){$inhal .= "<tr><td>Dormitorio 2</td></tr>\n";$nivel=5;
                }elseif (
$line>74 && $line<86 && $nivel!=6){$inhal .= "<tr><td>Dormitorio 3</td></tr>\n";$nivel=6;
                }elseif (
$line>85 && $line<101 && $nivel!=7){$inhal .= "<tr><td>Cocina</td></tr>\n";$nivel=7;
                }elseif (
$line>100 && $line<112 && $nivel!=8){$inhal .= "<tr><td>Dormitorio4</td></tr>\n";$nivel=8;
                }elseif (
$line>111 && $line<122 && $nivel!=9){$inhal .= "<tr><td>Despacho</td></tr>\n";$nivel=9;
                }elseif (
$line>121 && $line<127 && $nivel!=10){$inhal .= "<tr><td>Baños</td></tr>\n";$nivel=10;
                }elseif (
$line>126 && $line<129 && $nivel!=11){$inhal .= "<tr><td>Garage</td></tr>\n";$nivel=11;
                }elseif (
$line>128 && $line<134 && $nivel!=12){$inhal .= "<tr><td>Pasillos</td></tr>\n";$nivel=12;
                }elseif (
$line>133 && $line<138 && $nivel!=13){$inhal .= "<tr><td>Terraza</td></tr>\n";$nivel=13;
                }elseif (
$line>137 && $line<154 && $nivel!=14){$inhal .= "<tr><td>Otros</td></tr>\n";$nivel=14;}
                
$inhal .= "<tr><td>"."$line</td><td>"."$name"."</td><td>"."$value"."</td></tr>\n";
            }
            
$line++; 
Es un código que recoge el contenido de un array que proviene de un formulario de mobiliario y en esta parte del código que os pongo lo que hago es decirle que la primera vez que entra un concepto, por ejemplo de cocina, me meta una celda donde ponga un enunciado "cocina", despues de eso ya no volveria a ponerlo hasta que no entre en otro tipo de muebles, por ejemplo "despacho".

Mi segunda consulta esta relacionada con lo mismo; la variable $inhal lo que va almacenando es una cadena que contienela lista de mobiliario en un formato de tabla con dichos encabezados. Esta variable seria parte del cuerpo de un correo electronico ¿como hago para que el mail se vea en el formato html interpretado? (cuando me llega veo el código)
  #2 (permalink)  
Antiguo 05/04/2012, 13:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Mail con cuerpo html

No entiendo bien lo que dices, pero si quieres seleccionar te conviene un formulario select (estático o dinamico, extrayendo datos de una bd). Saludos
  #3 (permalink)  
Antiguo 05/04/2012, 17:08
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Mail con cuerpo html

Lo explico mejor;

Un formulario envia una cadena de de campos con el nombre de una serie de muebles y el numero de ellos. Por ejemplo "camas,2,sofas,1,mesas,3" y eso lo recoge en el documento php del mail en un array (hasta aqui lo normal vamos)

En el formulario de origen los muebles estan agrupados por areas asi que por ejemplo en el arrays del 21 a 43 pertenecen a "muebles de salon comedor" Por eso mi codigo detecta si es un numero entre el 21 al 43. Si aun no ha entrado nada de "Salon comedor" pone la cabecera "Salon comedor" y pone la variable $nivel con el nivel o escalon oportuno (en este caso el 2) de manera que si encuentra otra variable del array con clave comprendida entre 21 y 43 no vuelva a poner la cabecera.

El fragmento de codigo que puse corresponde a eso y, como dije, funciona perfectamente, solo que pensé que quizas no fuera el mejor código posible con tantos elseif (no se por ejemplo si podria usar un switch para eso)

En otro orden de cosas y mas importante es lo que quiero hacer con eso; la idea es enviar ese código html a un mail y que se vea pues eso, en forma de tabla; eso tambien lo he hecho solo que lo que llega al destino es él código html de una tabla, sin interpretar, ¿Como hago para que lo interprete? ¿Como envio un código html a una direccion de correo para que se visualice correctamente?

Etiquetas: cuerpo, formulario, html, mail, tabla, 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 17:05.