Ver Mensaje Individual
  #14 (permalink)  
Antiguo 29/04/2011, 10:06
IEKK
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Problema con distintos botones en el mismo formulario

El tema es que le eches un ojito al manual de php. No lo digo a mal, sino para que así aprendas un poco más.
Te explico un poco la idea. No desarrollé la parte en la que validas que las las variables del post y el session sean correctas, pero eso es otra bobería.

-Cambié el action del formulario para que fuera la propia página.
-El boton calcular llama a la función calcularprecio, una vez calculado la variable la ponemos en el session.
-Si esa variable existe se añade en el input.
-El boton enviar llama a la función de enviar mail y redirecciona a otra página.

Es posible que tengas que adaptar algo, no sé, pero la idea es esa, y como ves todo junto, yo no dije quetenía que hacerse separado xD
Recuerda validar que haya un precio en el input antes de enviar el correo. Así que aún así deberás crear un IF, no te lo iba a hacer todo jejeje

Código PHP:
<?php
if (isset($_POST['calcular']))
{
    
    
//Recuerda validar aquí las variables para que no te hagan nda raro xD
    
$precioalojamiento=0;
    
$preciocurso=0;
    
$total=0;
    echo 
$tipo=$_POST['curso'];
    echo 
$alojamiento=$_POST['alojamiento']; 
    echo 
$semanas=$_POST['semanas'];
    echo 
$temporada=$_POST['temporada']; 

    function 
calculoPrecios($tipo$alojamiento$semanas$temporada){
       
$precioCurso = array('basico' => array('130' '320' '510'),
                               
'intensivo' => array('190' '470' '695'));
       
$precioAlojamiento  = array('compartido' => array('100' '300' '450'),
                               
'individual' => array('210' '370' '580'));
     
       
$coefiTempora 2;
       if(
$temporada == "baja")
           
$coefiTempora 0;
       if(
$temporada == "media")  
           
$coefiTempora 1;
          
      
$precioTotal=($precioCurso[$tipo][$coefiTempora]+$precioAlojamiento[$alojamiento][$coefiTempora])*$semanas;
      
$_SESSION['$precioTotal']=$precioTotal;       
    }
        
    
calculoPrecios($tipo$alojamiento$semanas$temporada); 
}
if (isset(
$_POST['calcular']))
{
    
//aqui recuerda validar que exista el post Total que sea numero y que sea como el session etc etc
    
    
$mail='[email protected]'
    
    
$precioTotal=$_SESSION['$precioTotal'];
    
$nombre $_POST['nombre']; 
    
$telefono $_POST['telefono']; 
    
$email $_POST['email'];
    
    
$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,"Mail recibido",$message)) 
    
header ("Location: $thank" ); 
}

?>

<table width="50%" border="0">

<form action="<?php $_SERVER['PHP_SELF'?>" 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="field1" name="curso"><option>Elige tipo de curso</option> <option value="basico">Curso Básico (20 clases, por semana, de 45 minutos cada una)</option> <option value="intensivo">Curso Intensivo (30 clases, por semana, de 45 minutos cada una)</option> </select></td>
  </tr>
  <tr>
    <td><label>Tipo de alojamiento:</label></td>
    <td><select id="field2" name="alojamiento"><option>Elige tipo de alojamiento</option> <option value="compartido">Compartido (Habitación compartida de 2 ó 3 personas)</option> <option value="individual">Individual (Habitación individual)</option> <option value="sinalojamiento">Sin alojamiento</option> </select></td>
  </tr>
  <tr>
    <td><label>Número de semanas:</label></td>
    <td><input id="field3" class="semanas" name="semanas" size="20" type="text" /></td>
  </tr>
  <tr>
    <td><label>Fecha de reserva:</label></td>
    <td><select id="field4" name="temporada"> <option>Elige la fecha de llegada</option> <option value="baja">Temporada baja (Del 01/01/2011 al 31/05/2011)</option> <option value="media">Temporada Media (Del 01/09/2011 al 31/12/2011)</option> <option value="alta">Temporada Alta (Del 01/06/2011 al 30/08/2011)</option> </select></td>
  </tr>
  <tr>
    <td><input class="inputForm3" name="calcular" type="submit" value="Calcula el precio de tu curso" /></td>
    <td><input type="text" value="<?php if( isset($_SESSION['$precioTotal']) ) echo $_SESSION['$precioTotal'];?>" 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" class="inputForm2" name="mensaje"></textarea></td>
  </tr>
  <tr>
    <td>Haz la reserva</td>
    
    <td>
    <input class="inputForm3" name="enviar" type="submit" value="Enviar reserva" />
    </td>
  </tr>
 </form>
</table>
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Última edición por IEKK; 29/04/2011 a las 10:13