Nous sommes actuellement le 04 Juil 2026, 06:14

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 7 message(s) ] 
Auteur Message
MessagePublié: 19 Oct 2007, 16:02 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 06 Jan 2002, 22:38
Message(s) : 5949
Localisation : Quebec
Suite à mon message sur la calcul de distance avec google maps, je me suis monté la petit boucle suivant :
Code :
<script type="text/javascript">
var map;
var directionsPanel;
var directions;
var imax;
var adresse;
var adresseclompete;
var distance;
var chemin;
var i;
function calculdistance() {
  imax = document.proposecontrat.numanim.value;
  for (i=1; i<imax; i++) {
  alert(i);
  directionsPanel = document.getElementById("route");
  directions = new GDirections(map,directionsPanel);
  adresse = "adress"+i;
  adresseclompete = document.getElementById(adresse).value;
  directions.load(adresseclompete);
  GEvent.addListener(directions,"load", function() {
    distance = directions.getDistance().html;
    chemin = "distance"+i;
    document.getElementById(chemin).value=distance;
    alert(distance);
  });
  }
}

</script>


Je vais recupérer le nom de distance que je veux calcul avec imax et boucler pour chacune d'elle. Or, mon trouble, c'est qu'il va bien bouclé de 1 à mon imax mais il va ne me recuperer la distance que pour le dernier ce qui est problématique. Une idée de comment résoudre le problème ?

_________________
Herakles Informatique Inc
Collaborateur pour HardGamers


Haut
 Profil  
Répondre en citant  
MessagePublié: 19 Oct 2007, 19:12 
Hors-ligne
Nouvel adepte
Nouvel adepte

Inscription : 20 Mars 2002, 00:51
Message(s) : 53
Localisation : Sainte-Anne-des-Plaines
Je ne suis pas certain de comprendre mais si tu veux dire qu'il va arrêter avant d'entrer dans la boucle avec ta valeure imax, tu n'a qu'à faire

for (i=1; i<imax + 1 ; i++)

ou encore

for (i=1; i<=imax; i++)


Haut
 Profil  
Répondre en citant  
MessagePublié: 19 Oct 2007, 20:30 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 06 Jan 2002, 22:38
Message(s) : 5949
Localisation : Quebec
Ce que je veux dire c'est qu'il ne met la valeur dans le champs que sur le dernier i et non pas à chaque i. Mon imax correspond à mon nombre total de resultat et il doit me faire le calcul pour chaque i mais il ne fait que pour le dernier i alors que si je fais un alert(i);, il va me sortir toutes les valeurs de i les unes après les autre...

_________________
Herakles Informatique Inc
Collaborateur pour HardGamers


Haut
 Profil  
Répondre en citant  
MessagePublié: 19 Oct 2007, 21:46 
Hors-ligne
Toujours là!
Toujours là!

Inscription : 19 Juin 2002, 17:02
Message(s) : 1444
Localisation : Sherbrooke
Citer:
var adresseclompete;


problème de nom de variable?

_________________

Desktop Asus P5QL Pro, e2180 2.0 @ 3.2 (1.375v), OCZ Vendetta 2, 2X2gb G-Skill DDR2-1066, EVGA 9800GT 512mb, WD Raptor 150gb 10k rpm, WD Raptop 36gb, Seagate 250gb, Corsair TX650W, Win Vista Home Premium 64, Ubuntu 9.10, LG 19".
Laptop Macbook Pro 15" 2.8ghz, 8gb DD3-1066, GeForce 9600m GT 512mb + 9400m GT 256mb, Corsair SSD 120gb, Lacie FW800 1TB externe, Thermaltake BlacX avec WD 1TB + 320gb. NewerTech USB to DVI. Samsung 2343BW + Samsung 245B.
http://www.leflasheux.com


Haut
 Profil  
Répondre en citant  
MessagePublié: 20 Oct 2007, 12:01 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 06 Jan 2002, 22:38
Message(s) : 5949
Localisation : Quebec
Nop, car j'utilise ce nom partout même si il est mal tapper.

_________________
Herakles Informatique Inc
Collaborateur pour HardGamers


Haut
 Profil  
Répondre en citant  
MessagePublié: 15 Déc 2007, 07:07 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 15 Déc 2007, 07:01
Message(s) : 3
Salut,

J'ai eu le même problème, il semble que la création de GEvent.addListener ne marche pas au mieux avec une boucle for. J'ai put m'en sortir d'une autre façon, en appelant une fonction dans la boucle. Je ne sais pas pourquoi cette méthode marche mieux, mais c'est le cas:

function CreateEvent()
{
GEvent.addListener(directions,"load", function() {
distance = directions.getDistance().html;
chemin = "distance"+i;
document.getElementById(chemin).value=distance;
alert(distance);
});
}


Puis appel dans ta fonction:

function calculdistance() {
imax = document.proposecontrat.numanim.value;
for (i=1; i<imax; i++) {
alert(i);
directionsPanel = document.getElementById("route");
directions = new GDirections(map,directionsPanel);
adresse = "adress"+i;
adresseclompete = document.getElementById(adresse).value;
directions.load(adresseclompete);

CreateEvent();

});
}

Bon après il faut adapter avec les variables globales/locales et appel d'arguments....


Haut
 Profil  
Répondre en citant  
MessagePublié: 15 Déc 2007, 13:02 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 06 Jan 2002, 22:38
Message(s) : 5949
Localisation : Quebec
Je vais essayer ça. Merci.

_________________
Herakles Informatique Inc
Collaborateur pour HardGamers


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 7 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site