Fonctions qui boucle !!

Résolu
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 19 nov. 2006 à 10:14
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 - 19 nov. 2006 à 22:05
Bonjour le forum, auriez vous une idée pourquoi ce code tourne en boucle ?

Et comment faire pour que ca ne se produise plus

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA-VoP8K1igQkslElwTv5NeRTE79DHdVtIDAi49rq7klECoQxyQhSBOCjJpiBtFhI0sQavkUn68xRBcg" type="text/javascript"></script>
<script type="text/javascript">
 
var geocoder = new GClientGeocoder();
 
function showAddress(address){
if(geocoder){
geocoder.getLatLng(address, function(point){
if(!point){
document.write("Impossible de localiser l'adresse :\n\n" + address);
}else{
document.write(point);
}
});
}
}
 
</script>
 
<script>
showAddress('caen france');
</script>

<!-- END TEMPLATE: bbcode_code -->

Merci

10 réponses

rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 nov. 2006 à 18:51
Ok j'ai comprisen fait à la place de " dt situer; "  il faut faire " dt ""+situer+""; "

voila par contre n'oublie pas d'enlever le document.close() dans la fonction Localiser car il ne sert a rien maintenant

et aussi n'oublie pas de mettre les balises <html> et de mettre tes scripts dans la balise <head> pour avoir une page html compatible

voilà mais tu peux remettre 200 au lieu de 500
le problème était que la variable n'était pas une chaine de caractère donc la fonction split était inconnue

@+

-- The Rubik's Man --
3
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 nov. 2006 à 16:35
il faut que tu rajoutes " document.close() " à la fin de la fonction passée en paramètre

c'est à dire :

....................
else{
                     document.write(point);
}
document.close();
..............................

voilà bonne prog
@+

-- The Rubik's Man --
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
19 nov. 2006 à 16:43
A oué, bien joué, je ne savais pas ca !! Un autre et dernier problème, je ne souhaite pas afficher document.write(situer) mais plutot récupérer la variable pour en décortiquer les valeurs. Voici mon code :

<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA-VoP8K1igQkslElwTv5NeRTE79DHdVtIDAi49rq7klECoQxyQhSBOCjJpiBtFhI0sQavkUn68xRBcg" type="text/javascript"></script>
<script type="text/javascript">

var geocodeur = new GClientGeocoder();
var situer;

function Localiser(adresse) {
    if (geocodeur) {
        geocodeur.getLatLng(adresse, function(situer) {
                    if (!situer) {
                        //document.write("Impossible de localiser l'adresse :\n\n" + adresse);
                dt = "Impossible de localiser l'adresse";
                    } else {
                        document.write(situer);
                    }
            document.close();
                });
    }
}

</script>

    <script>
    Localiser('saint malo france');
    //je souhait que dt soit également a ce que retourne Localiser()
    //var dt = "(48.648178, -2.02609)";  // pour l'exemple
    //document.write(situer);
    var a = dt.split(",");
    var b = a[0].split("(");
    var c = a[1].split(")");
    document.write("latitude : " + b[1] + " | ");
    document.write("\n\n");
    document.write("longitude : " + c[0]);
    </script>

Merci de ton aide ;)
0
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 nov. 2006 à 16:58
Ben tu avais fais la moitié déjà...

function Localiser(adresse) {
    if (geocodeur) {
        geocodeur.getLatLng(adresse, function(situer) {
                    if (!situer) { 
                       dt = "Impossible de localiser l'adresse";
                    } else { 
                        dt = situer;
                    }
        });
    }
}

-- The Rubik's Man --
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 nov. 2006 à 17:00
Puis le " document.write() " s'utilise à l'intérieur d'un container!!!! sinon toute la page HTML est effacée
donc pour pas que cela se fasse :

   <script type="text/javascript">
      document.write(....);
   </script>

et pas directement dans la balise BODY

-- The Rubik's Man --
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
19 nov. 2006 à 17:13
J'ai fait tout ce que tu as dis mais ca ne semble pas marcher :

<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA-VoP8K1igQkslElwTv5NeRTE79DHdVtIDAi49rq7klECoQxyQhSBOCjJpiBtFhI0sQavkUn68xRBcg" type="text/javascript"></script>
<script type="text/javascript">

var geocodeur = new GClientGeocoder();
var situer;

function Localiser(adresse) {
    if (geocodeur) {
        geocodeur.getLatLng(adresse, function(situer) {
                    if (!situer) {
                dt = "Impossible de localiser l'adresse";
                    } else {
                        dt = situer;
                    }
            document.close();
                });
    }
}

</script>

   

    <script>
    Localiser('saint malo france');
    //je souhait que dt soit également a ce que retourne Localiser()
    //var dt = "(48.648178, -2.02609)";  // pour l'exemple
    document.write(dt);
    //var a = dt.split(",");
    //var b = a[0].split("(");
    //var c = a[1].split(")");
    //document.write("latitude : " + b[1] + " | ");
    //document.write("\n\n");
    //document.write("longitude : " + c[0]);
    </script>
   

Voici le résultat : http://s183283209.onlinehome.fr/beaute/test2.php

Merci de ton aide
0
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 nov. 2006 à 17:58
Oui c'est normal car en fait cela prend du temps pour localiser... donc en fait quand tu appelles le document.write(dt) la fonction localiser n'a pas encore finit!!! donc la variable dt n'est pas définie!!!
donc en fait il faut que tu mettes tout le code de traitement de la variable dt dans une fonction par exemple :

function parseResult(localisation) {
   var a = localisation.split(",");
   var b = a[0].split("(");
   var c = a[1].split(")");
   document.write("latitude : " + b[1] + " | ");
   document.write("\n\n");
   document.write("longitude : " + c[0]);
   document.close();
}

et ensuite tu fais dans le script de ta balise div : setTimeout('parseResult(dt)',200);
le 200 veut dire 0.2s ( c'est au pif au mètre... rien ne peux prédire quand ca sera terminé mais bon tu testes )

et la c'est ok!!

-- The Rubik's Man --
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
19 nov. 2006 à 18:19
Toujours rien avec ce code :

<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA-VoP8K1igQkslElwTv5NeRTE79DHdVtIDAi49rq7klECoQxyQhSBOCjJpiBtFhI0sQavkUn68xRBcg" type="text/javascript"></script>
<script type="text/javascript">

var geocodeur = new GClientGeocoder();
var situer;

function Localiser(adresse) {
    if (geocodeur) {
        geocodeur.getLatLng(adresse, function(situer) {
                    if (!situer) {
                dt = "Impossible de localiser l'adresse";
                    } else {
                        dt = situer;
                    }
            document.close();
                });
    }
}

function parseResult(localisation) {
   var a = localisation.split(",");
   var b = a[0].split("(");
   var c = a[1].split(")");
   document.write("latitude : " + b[1] + " | ");
   document.write("\n\n");
   document.write("longitude : " + c[0]);
   document.close();
}

</script>

   

    <script>
    Localiser('saint malo france');
    setTimeout('parseResult(dt)',500);
    </script>
   

Merci
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
19 nov. 2006 à 21:38
Super geant [auteurdetail.aspx?ID=649381 rubiks10], grave merci ;)
0
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 nov. 2006 à 22:05
de nada....

@+

-- The Rubik's Man --
0
Rejoignez-nous