Page 1 sur 1

Calcul avec un select ...

Posté : 03 mars 2006, 22:35
par dark_vidor
Bonjour,

J'ai un petit pb

J'ai un select qui me permet de choisir une destination
J'aimerais pouvoir calculer le temps en seconde pour aller sur celle ci (application de la formule AB² = racine[ (Xb-Xa)² + (Yb-Ya)² ] )

Les coordonnées de la cible sont a recuperer suivant la valeur du select (le select est generé par php / les infos sont stocké en base de données)

Code : Tout sélectionner

<html> <head> <title>gni ?</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> function update(coord_Xm, coord_Ym) { var coord_Xo = 427; var coord_Yo = 57; document.getElementById('temps').innerHTML = 'Temps estimé*&nbsp;:&nbsp;'+10*Math.sqrt(Math.pow(coord_Xm-coord_Xo,2)+Math.pow(coord_Ym-coord_Yo,2))+'&nbsp;sec&nbsp;&nbsp;'; } </script> </head> <body> <select name="destination" id="destination" class="select"> <option value=1 style="color: #0000FF;" onKeyUp="update(584,247);">Aduba 3 [Romek]</option> <option value=2 style="color: #00FF00;" onKeyUp="update(424,57);">Almania [dark_vidor]</option> <option value=3 style="color: #FF0000;" onKeyUp="update(530,460);">Alzoc 3 [Decapfour]</option> <option value=4 style="color: #0000FF;" onKeyUp="update(389,32);">Ammuund [Romek]</option> <option value=5 style="color: #0000FF;" onKeyUp="update(490,410);">Ando [Romek]</option> <option value=6 style="color: #0000FF;" onKeyUp="update(275,550);">Anoat [Dark Ness]</option> <option value=7 style="color: #0000FF;" onKeyUp="update(270,575);">Anoth [Dark Ness]</option> <option value=8 style="color: #9E6209;" onKeyUp="update(455,192);">Anzat </option> <option value=9 style="color: #9E6209;" onKeyUp="update(450,473);">Arbra </option> </select> <div id='temps'></div> <script language="JavaScript"> update(); </script> </body> </html>
Bon ça ne fonctionne pas :(
Si vous pouviez m'aider :D :wink:

Merci par avance

Posté : 03 mars 2006, 23:07
par Truc
Salut,
J'ai un petit pb
oui les abréviations, certes compréhensibles mais tout de même :roll:

Sinon pour déclencher une action avec un select on utilise "onchange" et non "onKeyUp" et encore moins sur chaque option mais plutot sur le select lui même.

Essaie en adaptant
<select onchange="update(this.value)">
<option value="584,247">Aduba 3 [Romek]</option>
</select>
function update(coord)
{ 
   //récupération des coordonnées... de "584,247" => x=584 et y=247
   var coupure = coord.indexOf(","); 
   var x= parseInt(coord.substring(0,coupure));
   var y= parseInt(coord.substring(coupure+1));
 
   //reste du code

}

Posté : 03 mars 2006, 23:19
par dark_vidor
je souhaite garder value=id parce que je m'en sert pour une insertion après en bdd :roll:

Posté : 03 mars 2006, 23:32
par Truc
c'est mi-grave :)

tu peux faire passer tout ce que tu veux dans le value:
<select name="destination" id="destination" class="select" onchange="update(this.value)">
<option value="1,584,247">Aduba 3 [Romek]</option>
<option value="2,424,57">Almania [dark_vidor]</option>
</select>
function update(coord)
{
   var coupure1 = coord.indexOf(",");
   var coupure2 = coord.lastIndexOf(",");
   var x= parseInt(coord.substring(coupure1+1,coupure2));
   var y= parseInt(coord.substring(coupure2+1));

   //reste du code

}
Pour l'insertion en BD qui se fait en php tu récupère l'id avec POST:
$id = explode(",",$_POST['destination']);
$id = $id[1]; // 1ère partie de la varaible POST donc l'id