bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008
-
9 déc. 2008 à 17:11
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
12 déc. 2008 à 12:30
Bonjour,
Actuellement j'ai un input qui lors d'un Onclick se rempli par des coordonnées GoogleMaps, un fois rempli je récupère les données pour les afficher dans un textarea.
Le problème est que lorsque j'utilise à plusieurs reprise le onclik pour afficher plusieurs coordonnées qui s'affiche les unes derriere les autres, ces coordonnées s'affiche deux fois de suite ce qui implique que les coordonnées sont recuperer avant le rafraichissement du input!
Une idée?? j'esperer etre assez clair car ce n'est pas tres facil à expliquer ^^
les codes:
function initialize() { // Fonction qui recupere les coordonnées!!!
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
GEvent.addListener(map, "moveend", function() {
var center = map.getCenter(); var s document.getElementById("message").value center.toString(); // ENVOI les données à l'Input ('message')
var s1 = s.replace(/ /,"");
var s2= s1.replace(/\(/,"");
var s3= s2.replace(/\)/,"");
document.getElementById('message').value= s3;//coordonnées Lg & Lt
FONCTION qui recupere les données de l'input pour les mettre ds le textarea 'A'
function getURL() {
if(document.getElementById('message').value!==""){
var i;
var selectedList = new Array();
var selectBox = document.getElementById("Villes"); // on cible le select
var coo = document.getElementById("message").value;
if (document.getElementById('Box').elements[0].checked==true)
{
for (i=0; i<selectBox.options.length; i++)
{ if (selectBox.options[i].selected)
{
document.getElementById('A').value+= "http://............="+coo+',red'+i; // affiche la premeire partie du texte area apres le Onclick
}
}
}
else if (document.getElementById('Box').elements[1].checked==true)
{
for (i=0; i<selectBox.options.length; i++)
{ if (selectBox.options[i].selected)
{
document.getElementById('A').value+= "|"+coo+",red"+i; ajoute les coordonnées apres la 1ere.
}
}
}
}
};
Input,Onclick, textarea:
<script type="text/javascript">
<!-- Debut
var b= 'rr';
document.write('<form action="" method="">');
document.write('<textarea name="le_texte" id="A" rows="10" cols="40">'+ b +''+ ET +'</textarea>
');
document.write('</form>');
// fin -->
</script>
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 10:34
Je vois que ma question ne motive pas les foules, peut être pas très compréhensible. Pour faire plus simple comment faire pour etre sur qu'une fonction "B" se lance quand la "A" se termine?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 déc. 2008 à 11:18
bonjour,
lance ta fonction B dans la fonction A
mais je pense que ton souci est ailleurs !
>>Le problème est que lorsque j'utilise à plusieurs reprise le onclik
pour afficher plusieurs coordonnées
>>qui s'affichent les unes derriere les
autres, ces coordonnées s'affichent deux fois de suite ce qui
>>implique
que les coordonnées sont recuperer avant le rafraichissement du input!
efface avant d'ajouter....
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 11:51
Je vais faire des test mais ne t inquiet tu viens de m'apprendre quelque chose de genial, sur plein de petit projet j ai voulu trouver comment lancer une fonction a partir d'une fonction sans jamais trouver ^^ et c'etait si simple que ca loool.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 déc. 2008 à 12:40
nickel si ça baigne, je n'ai pas tout lu,
donc probablement pas tout compris à ton souci
et certes...
mais document.getElementById('A').value=""; pour effacer avant
de faire les ajouts... ça ne conviendrait pas ?
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 12:52
J'ai essayer et ca me retourne une valeur vide a chaque fois alors je l'ai surement placé au mauvaise endroit, mais au final la solution de la sous-fonction est genial car elle se lance quand le input est remplie avec la nouvelle valeur et non juste avant ^^.
J'ai un autre souci et pour ne pas réouvrir un sujet peut être aurai tu encore un super réponse ^^:
=> Dans :
"for (i=0; i<selectBox.options.length; i++)
{ if (selectBox.options[i].selected)
{
document.getElementById('A').value+= "http://............="+coo+',red'+i;"
à la fin je met la variable "i" pour qu'il me retourne la valeur du choix, c'est a dire lors du premier choix il me met 1, lors du 2eme "2" ...etc; le problème ici c'est qu'il me retourne le numero de l'index ce qui est normal au final car je travail sur "i<selectBox.options.length".
Normalment, si je ne me trompe pas il me faut une boucle for, mais je ne sait pas sur quoi travailler?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 déc. 2008 à 14:30
pas assez de données pour répondre...
id="A".value c'est quoi ?
et là, tu ajoutes plusieurs "http" ?
>>e problème ici c'est qu'il me retourne le numero de l'index ce qui est
normal
>>au final car je travail sur "i<selectBox.options.length
navré... pas compris.
ce genre de choses peut poser problème, si je suppuet comme il faut,
mais pas dans les circonstances que tu décris
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 15:43
id=A c'est mon textarea.
dans ce textarea j'ajoute par defaut une url et a la fin de cette URL devrait apparaitre le numero du choix, donc le "i".
Imagine que tu as un select avec plusieur choix, on te demande de selectionner dans l'ordre de tes preferences les choix, a chaque choix tu valide par un submit et le resultat s'affiche dans le textarea:
exemple sur liste de ville:
le select => paris/nice/lille/dijon
le textarea apres les choix:
nice1 - paris2 -dijon3 -lille4...
J espere que cel eclairci mon probleme, je veux que lorsque les choix apparaisse dans le textarea qu'il soient suivi de le numero d'arrivée.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 déc. 2008 à 16:01
le_select_en_question.options[le_select_en_question.selectedIndex].text
c'est le texte de l'option sélectionnée
le_select_en_question.options[le_select_en_question.selectedIndex].value
c'est le value de l'option sélectionnée
le_select_en_question.selectedIndex
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 16:33
merci mais de ces 3 données aucunes ne peut me servir pour déterminer en quelle position le choix a été fait, du moins pas ainsi.
J'ai beau tourné la question dans tous les sens je dois dire que je ne vois pas il faudrait reussir a trouver comment déterminer l'ordre des choix?! et je ne peut ni utilisé le text ni value ni selectedindex car ces dernier varient.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 10 déc. 2008 à 16:50
ah... tu peux avoir plusieurs sélections ? c'est un select multiple ?
alors effectivement il faut boucler
for ( var lig=0; lig<le_select_en_question.length; lig++)
{ if ( le_select_en_question.options[lig].selected )
{ l'option est sélectionnée et c'est la ligne lig }
}
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 16:58
Alors ce n est pas un select multiple , a chaque fois que l'ont fait un choix on doit le valider et ce choix s'ajoute au textarea. j'ai tenté un le_select_en_question.length mais ca ne marche pas cela me retroune la position dans les select et non l'ordre de choix.
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 17:44
Justement je m en suis bien rendu compte lol et ce n'est helas pas le numero de l'option que je veux peut etre qu'il faut que je cherche dans une autre direction. ne pas me base sur le choix fait dans le select mais plus quelque chose comme si la variable afficher dans le textarea est la premiere alors mettre 1 (ca me fait pense a un switch case non?!).
bm3w325i
Messages postés37Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention17 décembre 2008 10 déc. 2008 à 17:59
En effet j'ai bien l'impression que tu ne comprend pas trop ce que je veux, j'ai ouvert un nouveau sujet avec un exemple que j'espère être assez simple. Car je ne vois plus comment expliquer mon problème.
En tout cas merci pour ton aide.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 10 déc. 2008 à 19:10
Bonjour à tous,
et pourquoi vouloir mettre
l'indice au fil de l'eau ?
Il te suffit de mettre un retour chariot, par
exemple ou autre tiret, à chaque fois que tu ajoutes puis de rajouter à la fin,
tu connais de ce fait bien l'ordre, et avec une méthode split ou une autre tu peux récupérer dans un
tableau...
Autrement tu peux également affecter à ta TEXTAREA un
attribut count que tu incrémentes à chaque ajout, et que tu peux dans ce
cas mettre en fin de ville.