Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda con un list menu

Estas en el tema de Ayuda con un list menu en el foro de Mysql en Foros del Web. Hola a to@s: Necesito que las opciones de un list/menu se guarden en una base de datos MySQL y se envíen por email: en el ...
  #1 (permalink)  
Antiguo 15/06/2010, 12:33
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Ayuda con un list menu

Hola a to@s:

Necesito que las opciones de un list/menu se guarden en una base de datos MySQL y se envíen por email:

en el formulario contact.php tengo el siguiente código:

Código PHP:
 <label for="Razon"><strong>Razón: </strong></label>
            <
select name="Razon" id="Razon">
              <
option value="PARTICULAR" selected="selected">Particular</option
              <
option value="IES">IES</option>
              <
option value="CEIP">CEIP</option>
              <
option value="CONCERTADO">Centro Concertado</option>
              <
option value="PRIVADO">Centro Privado</option>
              <
option value="EMPRESA">Empresa</option>
              <
option value="OTROS">Otros</option>
              </
select>
          <
label></label
Y en el que recibe los datos tengo el siguiente código:

Código PHP:
          <?php
     $Nombre
=$_POST["Nombre"];
    
$Telefono=$_POST["Telefono"] ;
    
$Email=$_POST["Email"];
    
$Razon$_POST["Razon"] ;
    
$Detalle=$_POST["Detalle"] ;
    
 if (empty(
$_POST["Nombre"]) or empty($_POST["Telefono"]) or empty($_POST["Email"]) or empty($_POST["Razon"]) or empty($_POST["Detalle"])) 
  {
     echo 
"No has introducido todos los detalles requeridos.<br>"
          
."Por favor vuelve e inténtalo de nuevo.";

// DE AQUÍ NO PASA EL CÓDIGO, POR ELLO PIENSO QUE NO RECOGE LA VARIABLE RAZON DEL LIST MENU.
PODÉIS AYUDARME?

MIL GRACIAS
  #2 (permalink)  
Antiguo 16/06/2010, 02:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Ayuda con un list menu

con lo que muestras no a parte de que te sobran cierres de label... pero eso no es lo que te esta dando problemas.

Mira que dice el manual


Note: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).

empty() is the opposite of (boolean) var, except that no warning is generated when the variable is not set.

Esto funciona?

Código PHP:
Ver original
  1. <?php
  2.      $Nombre=$_POST["Nombre"];
  3.     $Telefono=$_POST["Telefono"] ;
  4.     $Email=$_POST["Email"];
  5.     $Razon= $_POST["Razon"] ;
  6.     $Detalle=$_POST["Detalle"] ;
  7.    
  8.  if (empty($Nombre)
  9.            or empty($Telefono)
  10.                  or empty($Email)
  11.                        or empty($Razon)
  12.                                or empty($Detalle))
  13.   {
  14.      echo "No has introducido todos los detalles requeridos.<br>"
  15.           ."Por favor vuelve e inténtalo de nuevo.";



Quim

Última edición por quimfv; 16/06/2010 a las 02:29
  #3 (permalink)  
Antiguo 16/06/2010, 03:44
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con un list menu

Ok Quim muestro el código más completo:

En contact.php tengo el formulario:

Código PHP:
  <form id="form1" name="form1" method="post" action="/contactoweb.php" onsubmit="return formCheck(this)">          <ol><li>
          <
label for="Nombre"><strong>Nombre y Apellidos:</strong></label>
          <
input name="Nombre" id="Nombre" class="text" />
          </
li><li>
          <
label for="Telefono"><strong>Tel&#233;fono de Contacto: </strong></label>
          
<input id="Telefono" name="Telefono" class="text" />
          </
li><li>
          <
label for="Email"><strong>Email:  </strong></label>
          <
input id="Email" name="Email" class="text" />
          </
li><li>
          <
label for="Razon"><strong>Raz&#243;n: </strong></label>
          
<select name="Opcion" id="Opcion">
              <
option selected="selected"Eliga una opci&#243;n. </option>
              
<option value="Particular">Particular</option
              <
option value="IES">IES</option>
              <
option value="CEIP">CEIP</option>
              <
option value="Concertado">Centro Concertado</option>
              <
option value="Privado">Centro Privado</option>
              <
option value="Empresa">Empresa</option>
              <
option value="Otros">Otros</option>
         </
select>
          <
label></label>
           </
li><li>
            <
label for="Mensaje"><strong>Tu Consulta:</strong></label>
            <
textarea id="Detalle" name="Detalle" rows="8" cols="50"></textarea>
          </
li><li>
            <
label>
            <
input type="submit" name="submit" value="Enviar Mensaje" />
            </
label>
            <
div class="clr"></div>
          </
li></ol>
          </
form
Y en el siguiente formulario contactoweb.php tengo lo siguiente:

Código PHP:
  <?php
     $Nombre
=$_POST["Nombre"];
    
$Telefono=$_POST["Telefono"];
    
$Email=$_POST["Email"];
    
$Razon$_POST["Opcion"];
    
$Detalle=$_POST["Detalle"];
    
 if (empty(
$_POST["Nombre"]) or empty($_POST["Telefono"]) or empty($_POST["Email"]) or empty($_POST["Opcion"]) or empty($_POST["Detalle"])) 
  {
     echo 
"No has introducido todos los detalles requeridos.<br>"
          
."Por favor vuelve e inténtalo de nuevo.";
        
  }
else {
include (
"conectar.inc.php");
    
$Nombre=$_POST["Nombre"];
    
$Telefono=$_POST["Telefono"];
    
$Email=$_POST["Email"];
    
$Razon$_POST["Opcion"];
    
$Detalle=$_POST["Detalle"];
    
$headers  "MIME-Version: 1.0" "\r\n"
    
$headers .= "Content-type: text/html; charset=iso-8859-1" "\r\n"
    
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
    
$headers 'From: [email protected]';
    
$enviarmail mail("[email protected]""Talleres Colegios""Nombre = $Nombre \n Telefono = $Telefono \n Email = $Email \n       Opcion = $Razón \n Detalle = $Detalle");
   
$consulta "insert into talleres (Nombre, Telefono, Email, Razon, Detalle) values ('$Nombre', '$Telefono' '$Email', '$Razon', '$Detalle')";
   
$resultado mysql_query($consulta);
  if (
$resultado && $enviarmail)
  {
      echo 
"<p>Sus mensaje se ha recibido correctamente. </p>
           <p>En breve nos pondremos en contacto con usted. </p>
           <p>Gracias por su interés. </p>"
;
     }
else {
echo 
"<p> Error en el envio del mensaje.</p>
<p> Intente enviar su consulta a la siguiente dirección de correo: [email protected] </p> "
;

// AHORA HE CONSEGUIDO QUE LLEGUE HASTA AQUÍ EL CÓDIGO DEVOLVIÉNDOME ESTE MENSAJE DE ERROR EN EL ENVÍO SIN EMBARGO ME LLEGA EL CORREO A MI DIRECCION PERO SIN LA VARIABLE RAZON DEL SELECT OPTION

}
}
?>
Tú me dirás.
Mil Gracias!!

Última edición por Almu_Zara; 16/06/2010 a las 04:30
  #4 (permalink)  
Antiguo 16/06/2010, 05:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Ayuda con un list menu

Tema recibir el mail y tambien el mensaje de error

if ($resultado && $enviarmail)

estas usando este condicional, &&, luego solo dirá

echo "<p>Sus mensaje se ha recibido correctamente. </p>
<p>En breve nos pondremos en contacto con usted. </p>
<p>Gracias por su interés. </p>";

si las DOS variables son true. En tu caso $enviarmail=true && $resultado=false luego es false y por tanto manda el mensaje de error.

Como solucionarlo... debes hacer que una cosa dependa de la otra... es decir como lo tienes ahora vas a amandar el mail al "cliente" y no te va a quedar constancia en la base de datos...

Luego yo lo que haria es

Código PHP:
Ver original
  1. //Primero guardo los datos
  2.  $consulta = "insert into talleres (Nombre, Telefono, Email, Razon, Detalle) ".
  3.                                 "values ('$Nombre', '$Telefono' '$Email', '$Razon', '$Detalle')";
  4.  $resultado = mysql_query($consulta);
  5.  if($resultado){
  6. //si se a guardado sin error mando el mail
  7.  $enviarmail = mail("[email protected]", "Talleres Colegios",
  8.     "Nombre = $Nombre \n Telefono = $Telefono \n".
  9.     "Email = $Email \n       Opcion = $Razón \n Detalle = $Detalle");///OJO con $Razón
  10.   if ($enviarmail) {
  11.       echo "<p>Sus mensaje se ha recibido correctamente. </p>
  12.           <p>En breve nos pondremos en contacto con usted. </p>
  13.           <p>Gracias por su interés. </p>";
  14.      }else {
  15.        echo "<p> Error en el envio del mensaje.</p>".
  16.                "<p> Intente enviar su consulta a la siguiente dirección de correo: [email protected] </p> ";
  17.  
  18. //Aqui debes decidir que tienes que hacer con el registro sí se ha guardado en la bbdd.
  19.  
  20. }else{
  21.  
  22. //Si hay error en el momento de guardar
  23. //Aqui puedes repetir el mensaje de error
  24.  
  25. //En este caso no se habrá mandado el mail ni se ha guardado nada en la bbdd
  26.  
  27. }

Ahora nos queda el error al guardar...

¿Has descartado lo que te decia del uso de empty()?

Por otro lado has puesto $Razón no se si es la razón por la que la variable $Razon no funcione...

Código HTML:
Ver original
  1. <label for="Razon"><strong>Razón: </strong></label>
  2.           <select name="Opcion" id="Opcion">
  3.               <option selected="selected"> Eliga una opción. </option>
  4.               <option value="Particular">Particular</option>
  5.               <option value="IES">IES</option>
  6.               <option value="CEIP">CEIP</option>
  7.               <option value="Concertado">Centro Concertado</option>
  8.               <option value="Privado">Centro Privado</option>
  9.               <option value="Empresa">Empresa</option>
  10.               <option value="Otros">Otros</option>
  11.          </select>
  12.           <label></label>

esto va así

Código HTML:
Ver original
  1. <label for="Razon"><strong>Razón: </strong>
  2.           <select name="Opcion" id="Opcion">
  3.               <option selected="selected"> Eliga una opción. </option>
  4.               <option value="Particular">Particular</option>
  5.               <option value="IES">IES</option>
  6.               <option value="CEIP">CEIP</option>
  7.               <option value="Concertado">Centro Concertado</option>
  8.               <option value="Privado">Centro Privado</option>
  9.               <option value="Empresa">Empresa</option>
  10.               <option value="Otros">Otros</option>
  11.          </select></label>

No se corrige todo esto y dime si te funciona.... no se me ocurre ninguna otra razón...

Quim

Nota: no se de donde eres pero almenos en Catalunya las siglas CEIP y IES son obsoletas....tanto que nos habia costado decir PENICULA ahora le dicen FLIM...

Última edición por quimfv; 16/06/2010 a las 05:32
  #5 (permalink)  
Antiguo 16/06/2010, 06:29
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con un list menu

Hola Quim gracias, pero ahora ni siquiera sale mensaje de error, porque no inserta en la base de datos el valor de la variable $Razon que proviene del list/menu

:(

Nota: Soy de MAdrid y nose allí pero aquí a los institutos públicos se los llama IES Instituto de Educación Secundaria y a los coles públicos CEIP Centro de Educación Infantil y Primaria ;)
  #6 (permalink)  
Antiguo 16/06/2010, 07:50
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con un list menu

Hola, no se que ha sido, pero he vuelto a copiar todo el código desde cero, y no he usado un list/menu y ya funciona.

Gracias Un Saludo!!

Etiquetas: list
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 22:58.