Ver Mensaje Individual
  #21 (permalink)  
Antiguo 30/04/2011, 19:29
carlos2
 
Fecha de Ingreso: mayo-2005
Mensajes: 92
Antigüedad: 18 años, 11 meses
Puntos: 2
Respuesta: Problema con distintos botones en el mismo formulario

Bueno, tal y como había comentado, voy a postear aquí la solución al problema que plantee por si a alguien le puede servir de ayuda...

Finalmente he decidido realizar los cálculos con javascript y utilizar php unicamente para el envio del mail. Así me evito el problema de los dos botones, en el mismo formulario, apuntando al mismo php y, como los cálculos son sencillos, no tengo ningún problema de hacerlo con js. Además, creo que todo mucho más ordenado y es más fácil de entender para novatos como yo....

Por un lado, tendría el formulario en html...

Código HTML:
<table width="50%" border="0">

<form name="formReserva" action="envio.php" method="post">
  <tr>
    <td><label>Nombre:</label></td>
    <td><input id="nombre" class="inputForm" name="nombre" type="text" /></td>
  </tr>
  <tr>
    <td><label>Teléfono:</label></td>
    <td><input id="telefono" class="inputForm" name="telefono" type="text" /> </td>
  </tr>
  <tr>
    <td><label>E-mail:</label></td>
    <td><input id="email" class="inputForm" name="email" type="text" /> </td>
  </tr>
  <tr>
    <td><label>Tipo de curso:</label></td>
    <td><select id="curso" name="curso">
                  <option>Elige tipo de curso</option> 
                  <option value="basico">Curso Básico</option> 
                  <option value="intensivo">Curso Intensivo </option>
             </select>
    </td>
  </tr>
  <tr>
    <td><label>Tipo de alojamiento:</label></td>
    <td><select id="alojamiento" name="alojamiento">
                <option>Elige tipo de alojamiento</option>
                <option value="compartido">Compartido</option>
                <option value="individual">Individual</option>
                <option value="sinalojamiento">Sin alojamiento</option> 
             </select>
      </td>
  </tr>
  <tr>
    <td><label>Número de semanas:</label></td>
    <td><input id="semanas" name="semanas" size="20" type="text" /></td>
  </tr>
  <tr>
    <td><label>Fecha de reserva:</label></td>
    <td><select id="temporada" name="temporada"> 
              <option>Elige la fecha de llegada</option> 
              <option value="baja">Temporada baja</option> 
              <option value="media">Temporada Media</option> 
              <option value="alta">Temporada Alta</option>
           </select>
      </td>
  </tr>
  <tr>
    <td><input type="button" name="calcular" onclick="calcula();" value="Calcula el precio de tu curso" /></td>
    <td><input type="text" value="" size="20"  name="total" id="total" readonly="readonly"/></td>
  </tr>
  <tr>
    <td><label>Deja tu comentario:</label></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Caja comentario</td>
    <td><textarea id="mensaje" name="mensaje"></textarea></td>
  </tr>
  <tr>
    <td>Haz la reserva</td>
    
    <td>
    <input name="enviar" type="submit" value="Enviar reserva" />
    </td>
  </tr>
 </form>
</table> 
por otro lado, el código javascript para realizar el cálculo

Código Javascript:
Ver original
  1. function calcula(){  
  2.    
  3.  
  4. if(document.formReserva.curso.value == "basico"){  
  5.    var tipoCurso = "cursoBasico";  
  6. }else{  
  7.    var tipoCurso = "cursoIntensivo";  
  8. }  
  9.  
  10. if(tipoCurso == "cursoBasico"){  
  11.    var preciosCurso = [12,110,147];  
  12.    } else {  
  13.    var preciosCurso = [17,75,210];  
  14.    }  
  15.  
  16.  
  17. if(document.formReserva.alojamiento.value == "compartido"){  
  18.    var tipoAlojamiento = "alojamientoCompartido";  
  19. }else if(document.formReserva.alojamiento.value == "individual"){  
  20.    var tipoAlojamiento = "alojamientoIndividual";  
  21. }else{
  22.     var tipoAlojamiento = "noAlojamiento";
  23.     }  
  24.      
  25. if(tipoAlojamiento == "alojamientoCompartido"){  
  26.    var preciosAlojamiento = [4,8,13];  
  27.    } else if(tipoAlojamiento == "alojamientoIndividual") {  
  28.    var preciosAlojamiento = [9,16,27];  
  29.    }else if(tipoAlojamiento == "noAlojamiento"){  
  30.    var preciosAlojamiento = [0,0,0];    
  31.       }    
  32.  
  33. var semanas=document.formReserva.semanas.value  
  34.  
  35. if(document.formReserva.temporada.value == "baja"){  
  36.    var precioCurso = preciosCurso[0];  
  37.    var precioAlojamiento = preciosAlojamiento[0];  
  38.    }else if(document.formReserva.temporada.value == "media"){  
  39.    var precioCurso = preciosCurso[1];  
  40.    var precioAlojamiento = preciosAlojamiento[1];  
  41.    }else{  
  42.    var precioCurso = preciosCurso[2];  
  43.    var precioAlojamiento = preciosAlojamiento[2];  
  44.    }  
  45.  
  46. var precioTotal = (precioCurso+precioAlojamiento)*semanas;
  47.  
  48. document.formReserva.total.value = precioTotal;
  49. }

y por otro, el código php para el envio del mail

Código PHP:

$mail
='[email protected]'




$nombre $_POST['nombre']; 
$telefono $_POST['telefono']; 
$email $_POST['email'];
$curso=$_POST['curso']; //basico
$alojamiento=$_POST['alojamiento']; //compartido
$semanas=$_POST['semanas']; //2
$temporada=$_POST['temporada']; //baja 
$preciototal=$_POST['total'];
$mensaje $_POST['mensaje']; 

$thank="gracias.html"


$message 
nombre:"
.$nombre.
telefono:"
.$telefono.
email:"
.$email.
curso:"
.$curso."
alojamiento:"
.$alojamiento."
semanas:"
.$semanas."
temporada:"
.$temporada."
precio:"
.$preciototal."
mensaje:"
.$mensaje."
"




if (
mail($mail,"Solicitud de reserva",$message)) 
Header ("Location: $thank" ); 
Faltaría, para completar un poco mejor el formulario, validar los campos...

Creo que no me he dejado nada, espero que les sirva de ayuda a futuros...

Quería agradecer, de paso, la ayuda prestada sobre todo por IEKK.

Un saludo