Foros del Web » Programando para Internet » PHP »

Menu desplegable con valores para un calculo

Estas en el tema de Menu desplegable con valores para un calculo en el foro de PHP en Foros del Web. Hola, me estoy volviendo loco, estoy intentando hacer dos menus desplegable con ciudades. Cada ciudad tiene un valor. Al seleccionar una ciudad de un menu ...
  #1 (permalink)  
Antiguo 06/12/2007, 09:25
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Menu desplegable con valores para un calculo

Hola, me estoy volviendo loco, estoy intentando hacer dos menus desplegable con ciudades. Cada ciudad tiene un valor. Al seleccionar una ciudad de un menu y otra del otro menu se calcula la distancia entre dischas ciudades.

El problema es que no paso del menu desplegable.

<FORM action='testT.php' method='post'></SPAN>
<SELECT name='stad1'>
<OPTION value=1 selected>Amsterdam</OPTION>
<OPTION value=2>Madrid</OPTION>
<OPTION value=3>London</OPTION>
</SELECT>
<SPAN style="FONT-SIZE: 9pt">
<SELECT name='stad2'>
<OPTION value=1 selected>Amsterdam</OPTION>
<OPTION value=2>Madrid</OPTION>
<OPTION value=3>London</OPTION>
</SELECT>
<SPAN style="FONT-SIZE: 9pt">
<INPUT id='Button1' type='submit' value='Berekenen' name='berekenen'>

vale ahora en tesT.php quiero que se realice el calculo de modo que alli pongo las formulitas:

function distance($lat1, $lng1, $lat2, $lng2, $lat3, $lng3 = true)
{
$pi80 = M_PI / 180;
$lat1 *= $pi80;
$lng1 *= $pi80;
$lat2 *= $pi80;
$lng2 *= $pi80;
$lat3 *= $pi80;
$lng3 *= $pi80;

$r = 6372.797; // mean radius of Earth in km
$dlat = $lat2 - $lat1;
$dlng = $lng2 - $lng1;
$a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlng / 2) * sin($dlng / 2);
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
$km = $r * $c;

return ($miles ? ($km * 0.621371192) : $km);
}

siendo $lat1 = latitud de la ciudad 1 y lng1 la longitud de dicha ciudad.

tengo la longitud y latitud, pero como hago para que la eleccion de una ciudad le corresponda el valor de latitud y longitud correctos?

gracias!!
  #2 (permalink)  
Antiguo 06/12/2007, 11:37
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Menu desplegable con valores para un calculo

Con esta función:

Código PHP:
function calcularDistancia($latitud1$longitud1$latitud2$longitud2$unidad 'km')
{
    
$latitud1  deg2rad($latitud1);
    
$longitud1 deg2rad($longitud1);
    
$latitud2  deg2rad($latitud2);
    
$longitud2 deg2rad($longitud2);
    
    
$p sin($latitud1) * sin($latitud2) + cos($latitud1) * cos($latitud2) * cos($longitud1 $longitud2);
    
    
$d rad2deg(acos($p));
    
    switch (
$unidad)
    {
      case 
'milla':
        
$x 69.09;
        break;
      case 
'km':
      default:
        
$x 111.194;
    }
    
    
$total $d $x;
    
    return 
round($total);
}

$ciudades = array(
  
'Madrid' => array(40.563895, -3.702393),
  
'Paris' => array(48.8868432.351074),
  
'Nueva York' => array(40.853293, -74.006653)
);

if (
  isset(
$_GET['desde']) && isset($ciudades[$_GET['desde']]) &&
  isset(
$_GET['hasta']) && isset($ciudades[$_GET['hasta']])
)
{
  
$distancia =  calcularDistancia(
    
$ciudades[$_GET['desde']][0], $ciudades[$_GET['desde']][1],
    
$ciudades[$_GET['hasta']][0], $ciudades[$_GET['hasta']][1]
  );
  
  echo 
'Hay '.$distancia.' km';
}
else
{
    
$select '<select name="%NAME%">';
    foreach (
$ciudades as $ciudad => $datos)
    {
        
$select .= '<option value="'.$ciudad.'">'.$ciudad.'</option>';
    }
    
$select .= '</select>';
    
    echo 
'
<form>
  De '
.str_replace('%NAME%''desde'$select).'
  <br />
  A '
.str_replace('%NAME%''hasta'$select).'
  <br />
  <input type="submit" value="Calcular">
</form>    
    '
;

  #3 (permalink)  
Antiguo 13/12/2007, 07:54
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Menu desplegable con valores para un calculo

Muchas gracias!!! el codigo funciona!! ahora cruzar los dedos y que me funcione tb en la pagina!!

gracias de nuevo!
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 19:50.