Foros del Web » Creando para Internet » HTML »

Formulario a diferentes direcciones

Estas en el tema de Formulario a diferentes direcciones en el foro de HTML en Foros del Web. Buenas: tengo un formulario en HTML, con su respectivo PHP. Funciona todo perfecto, tengo una sóla duda: cómo puedo hacer para que el formulario vaya ...
  #1 (permalink)  
Antiguo 18/02/2013, 13:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 32
Antigüedad: 14 años, 2 meses
Puntos: 0
Formulario a diferentes direcciones

Buenas:
tengo un formulario en HTML, con su respectivo PHP. Funciona todo perfecto, tengo una sóla duda: cómo puedo hacer para que el formulario vaya a diferentes direcciones según el departamento que se escoge.
Dicho de otro modo: Cada departamento tiene que tener asignado una dirección de correo, y según el ques e elige, el formulario llega a esa dirección y no a los demás.

Muchas Graciass de antemano!


Aquí el código HTML
Código HTML:
<body><form action="enviar.php" method="post" enctype="multipart/form-data">

<table width="633" height="298" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="19" bgcolor="#66CCFF">&nbsp;</td>
    <td width="201" align="left" valign="middle" bgcolor="#66CCFF"><p class="style2">Nombre y apellido:</p></td>
    <td width="397" align="left" valign="middle" bgcolor="#66CCFF"><label>
      <input type="text" name="nombre" id="nombre" />
    </label></td>
    <td width="14">&nbsp;</td>
  </tr>

  <tr>
    <td width="19" bgcolor="#66CCFF">&nbsp;</td>
    <td width="201" align="left" valign="middle" bgcolor="#66CCFF"><p class="style2">Dirección de mail</p></td>
    <td width="397" align="left" valign="middle" bgcolor="#66CCFF"><label>
      <input type="text" name="mail" id="mail" />
    </label></td>
    
    <td width="14">&nbsp;</td>
  </tr>
  <tr>
    <td width="19" bgcolor="#66CCFF">&nbsp;</td>
    <td width="201" align="left" valign="middle" bgcolor="#66CCFF"><p class="style2">Teléfono</p></td>
    <td width="397" align="left" valign="middle" bgcolor="#66CCFF"><label>
      <input type="text" name="tel" id="tel" />
    </label></td>
    
    <td width="14">&nbsp;</td>
  </tr>
  <tr>
    <td bgcolor="#58b8e8">&nbsp;</td>
    <td align="left" valign="middle" bgcolor="#58b8e8" class="style2"><p><span class="style4"></span>Departamento</p></td>
    <td align="left" valign="middle" bgcolor="#58b8e8"><label>
      <select name="opcion" id="opcion">
        <option value="opc2">Comercial</option>
        <option value="opc3">Reclamos </option>
        <option value="opc4">Atención al cliente</option>
        <option value="opc5">RRHH</option>
      </select>
    </label></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td bgcolor="#66CCFF">&nbsp;</td>
    <td align="left" valign="middle" bgcolor="#66CCFF" class="style2"><p><span class="style4"></span>Escriba su comentario: </p></td>
    <td align="left" valign="middle" bgcolor="#66CCFF"><label>
      <textarea name="comentario" id="comentario" cols="45" rows="5"></textarea>
    </label></td>
    <td>&nbsp;</td>
  </tr>
 
  <tr>
    <td bgcolor="#66CCFF">&nbsp;</td>
    <td align="right" valign="middle" bgcolor="#66CCFF" class="style2"><p><span class="style4"></span>
      <input type="submit" name="enviar" id="enviar" value="Enviar" />
    </p></td>
    <td align="left" valign="middle" bgcolor="#66CCFF"><label>
      <input type="reset" name="borrar" id="borrar" value="borrar" />
    </label></td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
</body> 

Aquí el PHP

Código PHP:
<?php
function form_mail($sPara$sAsunto$sTexto$sDe)
{
$bHayFicheros 0;
$sCabeceraTexto "";
$sAdjuntos "";

if (
$sDe)$sCabeceras "From:".$sDe."\n";
else 
$sCabeceras "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach (
$_POST as $sNombre => $sValor)
$sTexto $sTexto."\n".$sNombre." = ".$sValor;

foreach (
$_FILES as $vAdjunto)
{
if (
$bHayFicheros == 0)
{
$bHayFicheros 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto $sCabeceraTexto.$sTexto;
}
if (
$vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero fopen($vAdjunto["tmp_name"], 'r');
$sContenido fread($oFicherofilesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if (
$bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(
mail($sPara$sAsunto$sTexto$sCabeceras));
}

//cambiar aqui el email
if (form_mail("[email protected]""Contacto desde la Web",
"Los datos introducidos en el formulario son:\n\n""[email protected]"))
echo 
"Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='2; url=index.html' >";
?>
</body>
</html>
  #2 (permalink)  
Antiguo 18/02/2013, 13:46
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Formulario a diferentes direcciones

Hace un campo hidden donde con javascript cambies el correo en ese campo hidden dependiendo a donde lo quieras mandar, luego en el php lo mandas al correo que valla en ese campo hidden :D
  #3 (permalink)  
Antiguo 18/02/2013, 13:56
 
Fecha de Ingreso: febrero-2010
Mensajes: 32
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Formulario a diferentes direcciones

Gracias BloodShadow por responder!
Soy bastante novata en PHP, por lo que no sabría como proceder con ese código.
Serías tan amable de especificarme qué es lo que tendría que poner en PHP? es un formulario que me pasaron y me está costando armar el php.

saludos!
  #4 (permalink)  
Antiguo 18/02/2013, 16:58
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Formulario a diferentes direcciones

Paso 1: agregas jquery (si puedes js puro hazlo con js)

Código HTML:
Ver original
  1. <script src="tudireccion/jquery.js"></script>

Paso 2: crea un script en donde por cada cambio de tu select, dependiendo el departamento puedes cambiar el email en el campo oculto, aca puedes hacerlo con numeros palabras o como gustes, este solo es un ejemplo

Código HTML:
Ver original
  1.     $(document).ready(function(){
  2.        
  3.         $('select#_deparment').change(function(){
  4.            
  5.             var to_email = $("input#_to_email");
  6.            
  7.             if($(this).val() == 1){
  8.                 to_email.val("[email protected]");
  9.             }else if($(this).val() == 2){
  10.                 to_email.val("[email protected]");
  11.             }else if($(this).val() == 3){
  12.                 to_email.val("[email protected]");
  13.             }
  14.            
  15.         });
  16.        
  17.     }) ;

Pase 3: agrega el campo oculto con ID, value y name, y al select agregale un ID

Código HTML:
Ver original
  1. <form method="post">
  2.     <input type="hidden" name="to_email" value="" id="_to_email"/>
  3.     <select id="_deparment" name="deparment">
  4.         <option value="1">opcion 1</option>
  5.         <option value="2">opcion 2</option>
  6.         <option value="3">opcion 3</option>
  7.     </select>
  8. </form>

Paso 4:

Luego en tu php donde tendrias que enviar el correo, cambia esto

Código PHP:
//cambiar aqui el email
if (form_mail($_POST['to_email'], "Contacto desde la Web",
"Los datos introducidos en el formulario son:\n\n"$_POST['to_email']))
echo 
"Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='2; url=index.html' >"
Ok! ya esta... ahora solo busca la manera de limpiar $_POST['to_email'] para que no te chinguen el server :) valida si es usuario logueado, limpia la cadena de texto, etc etc.. Mas no puedo hacer.
Te dejo para que investigues un poco ;) espero te sirva, si no entiendes me avisas para explicarte :)
  #5 (permalink)  
Antiguo 19/02/2013, 12:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Formulario a diferentes direcciones

No necesitás ni un campo hidden ni javascript, vos en tu form tenes esto

<select name="opcion" id="opcion">
<option value="opc2">Comercial</option>
<option value="opc3">Reclamos </option>
<option value="opc4">Atención al cliente</option>
<option value="opc5">RRHH</option>
</select>
en los values pones los emails de cada departamento, esa opción será recogida por el php como

$_POST['opcion'];

asi que el $sPara de tu función form_mail() debería recibir dicha variable
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 19/02/2013, 15:37
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Formulario a diferentes direcciones

Cita:
Iniciado por emprear Ver Mensaje
No necesitás ni un campo hidden ni javascript, vos en tu form tenes esto

<select name="opcion" id="opcion">
<option value="opc2">Comercial</option>
<option value="opc3">Reclamos </option>
<option value="opc4">Atención al cliente</option>
<option value="opc5">RRHH</option>
</select>
en los values pones los emails de cada departamento, esa opción será recogida por el php como

$_POST['opcion'];

asi que el $sPara de tu función form_mail() debería recibir dicha variable
Saludos
Cierto no se me ocurrio XD gracias por joder mi trabajo jajaja son bromas... es otra opcion tambien yo decia por si llenaba los campos con ids por medio de una base o algo nose... pero si es la mejor solucion la q brindaste amigo @emprear :D
  #7 (permalink)  
Antiguo 19/02/2013, 16:00
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Formulario a diferentes direcciones

Cita:
Iniciado por BloodShadow Ver Mensaje
gracias por joder mi trabajo
No, ni por asomo fué mi intención, eso no se le hace a un
http://www.forosdelweb.com/miembros/emprear/#friends

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 20/02/2013, 09:28
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Formulario a diferentes direcciones

jejeje si lo se @emprear solo estaba bromeando... en fin... este tema esta resuelto solo falta que @candediez lo revise y salga de su duda ehehe

saludos @emprear ;)

Etiquetas: direcciones, formulario, input, php
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:46.