11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, occupé avec un site pour l'école de ma fille, je viens demander votre aide parce que je ne suis toujours pas à l'aise avec javascript et je cale après avoir cherché partout sur le net (enfin je pense) et essayé différentes solutions....le pire c'est que je pense que c'est tout simple mais en javascript j'y connais pas grand chose, php OK...
Bref, je cherche à faire passer le résultat d'un fonction curseur() dans un champ de texte d'un formulaire pour la passer vers une page PHP (testvar.php) pour traitement; (je veux pas de passage en GET_.
Dans la page du curseur (en fait, c'est la valeur d'un rayon-aradius- d'un cercle pour définir une zone sur une carte google), la valeur s'affiche bien, je peux même la faire passer dans une fenêtre "alert" mais IMPOSSIBLE (à mon niveau ) de la faire passer dans un champ de text (qui sera "hidden") d'un formulaire en mode POST.

Voici un bout du code reprenant la fonction curseur() et la mise en page avec mon essais...
Qui peut m'aider ?
Merci d'avance


// fonction curseur 
 
 
function curseur(){ 
 
if(document.getElementById('slider_1')){ 
 
// On recupere la valeur du slider dans aradius
aradius = parseInt((document.getElementById('slider_1').value));
document.getElementById('slider_1_msg').innerHTML = (aradius); 
 
 
// Si la carte est initialisee
if(maCarte != null){
	// calcul du zoom
	if(aradius<=15){azoom=10;} 
	else{if(aradius<=35){azoom=9;}
	else{if(aradius<=70){azoom=8;} 
	else{if(aradius<=130){azoom=7;} 
	else{azoom=6;}}}}
	// Affectation du zoom
	maCarte.setZoom(azoom);
 
}
 
  // Si le cercle est initialise
   if(monCercle != null){
 
	// On change son rayon
	monCercle.setRadius(aradius * 1100);
}
 
}}


<body onmousemove="move_mouse_cursor(event)" onmouseup="mouseup_slider()"> 
 
<div id="cadreslider">
 
<div id="distance" >
  <div id="apDiv3">
  Distance à vol d'oiseaux :</div></div>
<div id="apDiv6">300 et +</div>
<div id="apDiv5">0</div> 
<div id="apDiv4">
  <div id="slider_1_div" ></div> </div>
<div id="apDiv1">
  <div id="slider_1_msg" ></div>     </div>
 
<script type="text/javascript"> 
init_slider('slider_1',0,0,300,0,300,curseur); 
</script> 
<div id="EmplacementDeMaCarte"></div>
<div id="apDiv2">
  <form id="form1" name="form1" method="post" action="testvar.php">
    <label for="valeur"></label>
 
   [b]<script type="text/javascript"> document.write('<TR> <TD> <input type="text" name="sliderValue" id="sliderValue" value = "' + aradius + '"> </TD></TR>');</script> [/b] //===> ICI J'ai tout essayé mais je comprends pas[fache]
 
    <input type="text" name="sliderValue" id="sliderValue" value = "+aradius+" />
    <input type="submit" name="envoyer" id="envoyer" value="Envoyer" onClick="javascript:alert('Vous avez sélectionné un rayon de '+aradius + 'km');" />
  </form>
</div>
</html>
Smiley fache Smiley fache
Bonjour,
Ton code n'est pas hyper clair : Quand déclares-tu ta variable aradius avec le mot clé var ?
Si c'est à l'intérieur de ta fonction sa valeur devient inaccessible. Mais puisque que tu ne l'a pas déclaré du tout elle est considérée comme globale par défaut. Tu devrais la déclarer à l'extérieur pour plus de rigueur, même si le résultat est le même.
Une autre chose m'interpelle : Je suppose que c'est la fonction curseur() qui donne la valeur de aradius ? Tu n'appelle ta fonction nulle part, tu la déclare mais c'est tout.
Et enfin dernier point : document.write() n'est à mon avis vraiment pas la fonction à utiliser, je crois que cette dernière est à bannir. Le moyen de modifier la valeur de ton champ est de passer par le DOM. Par exemple :

<input type="text" name="sliderValue" id="sliderValue"/>
<script type="text/javascript">
document.getElementById("sliderValue").value = aradius;
</script>


Voilà, voilà. En espérant t'avoir été utile.
Prince-Leto

P.S. : Pour débuger alert() marche bien si tu veux mais il existe autre chose de beaucoup plus pratique : Utilisez la console JavaScript des navigateurs
Merci Prince-leto d'avoir essayé de m'aider....J'avoue que mon bricolage est un peu fouilli mais comme je l'ai dit je ne suis vraiment pas habitué à javascript.
Donc effectivement la variable n'est déclarée nulle part sauf dans la fonction curseur parce que je croyais qu'il était simple de récupérer cette valeur "radius"....de fait c'est simple dans des rpocédure "alert" et pour paramétrer le rayon du cercle de la carte google...mais par contre je vois pas comment exporter cette valeur via un formulaire (post) pour la travaillé dans un fichier php....Je vais poursuivre sur base de tes précieux conseils j'y arriverai tot ou tard....n'est pas en forgeant.....
Merci à toi,