Ver Mensaje Individual
  #23 (permalink)  
Antiguo 30/04/2011, 20:33
Avatar de ESNOLA
ESNOLA
 
Fecha de Ingreso: octubre-2006
Mensajes: 188
Antigüedad: 17 años, 6 meses
Puntos: 20
Respuesta: consultar precio de un array desde un select y calcular

Código PHP:
header("Location: formB.html?resultado=$precioTotal");

/* este el script para el envio del mail*/

$mail='[email protected]'

////ESTO ADEMÁS ESTÁ MAL ///
/*
$precioTotal=($precioCurso[$tipo][$coefiTempora]+$precioAlojamiento[$alojamiento][$coefiTempora])*$semanas;*/
//Tendría que ser
$precioTotal=calculoPrecios($curso$alojamiento$semanas$temporada);
//Y tendría que ir antes de header("Location..... 
Mira en eso de arriba, en principio ya estás tomando el valor de la variable $precioTotal antes de calcularlo.

Otra cosa, tienes que decirle al script como diferenciar lo que tiene que hacer según la info que recoja:
CAMBIA:
Código HTML:
Ver original
  1. <td><input class="inputForm3" name="enviar" type="submit" value="Calcula el precio de tu curso" /></td>

POR

Código HTML:
Ver original
  1. <td><input class="inputForm3" name="calcula" type="submit" value="Calcula el precio de tu curso" /></td>
También tienes que volver a enviar todas las variables para que pueda tomarlas en la segunda vez que envías con el botón "Reservar".
A mi entender tendría que ser (todo el php):
Código PHP:
Ver original
  1. <?php
  2.  
  3. /*el script para el calculo*/
  4.  
  5. $precioalojamiento=0;
  6. $preciocurso=0;
  7. $total=0;
  8. $curso=$_POST['curso'];
  9. $alojamiento=$_POST['alojamiento'];
  10. $semanas=$_POST['semanas'];
  11. $temporada=$_POST['temporada'];
  12.  
  13.  
  14. function calculoPrecios($tipo, $alojamiento, $semanas, $temporada){
  15.    $precioCurso = array('basico' => array('130' , '320' , '510'),
  16.                            'intensivo' => array('190' , '470' , '695'));
  17.    $precioAlojamiento  = array('compartido' => array('100' , '300' , '450'),
  18.                            'individual' => array('210' , '370' , '580'));
  19.  
  20.    $coefiTempora = 2;
  21.    if($temporada == "baja")
  22.        $coefiTempora = 0;
  23.    if($temporada == "media")  
  24.        $coefiTempora = 1;
  25.      
  26.   $precioTotal=($precioCurso[$tipo][$coefiTempora]+$precioAlojamiento[$alojamiento][$coefiTempora])*$semanas;
  27.      
  28.   return $precioTotal ;    
  29. }
  30.  
  31. /*supuestamente esto es para mostrar el calculo en el campo de texto que he preparado para ello*/
  32. $precioTotal=calculoPrecios($curso, $alojamiento, $semanas, $temporada);
  33.  
  34. $calcular = $_POST['calcula'];
  35. if($calcular){
  36.   header("Location: formB.html?resultado=$precioTotal&alojamiento=$alojamiento&semanas=$semanas&temporada=$temporada&curso=$curso&accion=calculado");    
  37.  }
  38.  else
  39.  {
  40.   /* este el script para el envio del mail*/
  41.  
  42.  $mail='[email protected]';
  43.  
  44.  
  45.  $nombre = $_POST['nombre'];
  46.  $telefono = $_POST['telefono'];
  47.  $email = $_POST['email'];
  48.  
  49.  $mensaje = $_POST['mensaje'];
  50.  
  51.  $thank="gracias.html";
  52.  
  53.  $message = "
  54. nombre:".$nombre."
  55. telefono:".$telefono."
  56. email:".$email."
  57. curso:".$curso."
  58. alojamiento:".$alojamiento."
  59. semanas:".$semanas."
  60. temporada:".$temporada."
  61. precio:".$precioTotal."
  62. mensaje:".$mensaje."
  63. ";
  64.  
  65.  
  66.  if (mail($mail,"Mail recibido",$message))
  67.        Header ("Location: $thank" );  
  68.    
  69. }
  70.  
  71. ?>

Te he retocado un poco el html, aunque no todo, tienes que ajustarlo.
Código HTML:
Ver original
  1. <table width="50%" border="0">
  2.  
  3. <form action="formB.php" method="post">
  4.   <tr>
  5.     <td><label>Nombre:</label></td>
  6.     <td><input id="nombre" class="inputForm" name="nombre" type="text" /></td>
  7.   </tr>
  8.   <tr>
  9.     <td><label>Teléfono:</label></td>
  10.     <td><input id="telefono" class="inputForm" name="telefono" type="text" /> </td>
  11.   </tr>
  12.   <tr>
  13.     <td><label>E-mail:</label></td>
  14.     <td><input id="email" class="inputForm" name="email" type="text" /> </td>
  15.   </tr>
  16.   <tr>
  17.  
  18.     <td><label>Tipo de curso:</label></td>
  19.     <?php  
  20.     if($_GET['accion']){
  21.        echo '<td>'.$_GET['curso'].'</td>';            
  22.      }
  23.      else{
  24.        echo '<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>';    
  25.      }
  26.      ?>
  27.     </tr>
  28.   <tr>
  29.     <td><label>Tipo de alojamiento:</label></td>
  30.    
  31.         <?php  
  32.     if($_GET['accion']){
  33.        echo '<td>'.$_GET['alojamiento'].'</td>';            
  34.      }
  35.      else{
  36.       echo '<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>';
  37.      }
  38.      ?>
  39.    
  40.   </tr>
  41.   <tr>
  42.     <td><label>Número de semanas:</label></td>
  43.     <td><input id="field3" class="semanas" name="semanas" size="20" type="text" /></td>
  44.   </tr>
  45.   <tr>
  46.     <td><label>Fecha de reserva:</label></td>
  47.     <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>
  48.   </tr>
  49.   <tr>
  50.     <td><input class="inputForm3" name="calcula" type="submit" value="Calcula el precio de tu curso" /></td>
  51.    
  52.     <td><input type="text" value="<?php echo $_GET["resultado"]?>" size="20"  name="Total" id="Total" readonly="readonly"/></td>
  53.   </tr>
  54.   <tr>
  55.     <td><label>Deja tu comentario:</label></td>
  56.     <td>&nbsp;</td>
  57.   </tr>
  58.   <tr>
  59.     <td>Caja comentario</td>
  60.     <td><textarea id="mensaje" class="inputForm2" name="mensaje"></textarea></td>
  61.   </tr>
  62.   <tr>
  63.     <td>Haz la reserva</td>
  64.     <td><input class="inputForm3" name="enviar" type="submit" value="Enviar reserva" /></td>
  65.   </tr>
  66.  </form>


No lo he probado, así que es muy fácil que tengas que hacer algunos retoques.
Saludos