Page 1 sur 1
Pb Javascript Mozilla
Publié : 15 oct. 2008, 10:14
par EpocInvité
Bonjour les gens,
Je viens ici afin de vous soumettre un petit problème
J'ai un probleme avec la fonction submit()
Voici le script JS :
Code : Tout sélectionner
function MDControl() { }
MDControl.prototype = new GControl();
MDControl.prototype.initialize = function(map) {
var container = document.createElement("div");
var savepos= document.createElement("div");
savepos.title= "Sauvegarde";
savepos.className= "MDbuttons";
container.appendChild(savepos);
savepos.appendChild(document.createTextNode("Sauvegarde"));
GEvent.addDomListener(savepos, "click", function() {
var center = map.getCenter(); var zoom = map.getZoom();
saved.splice(0,2,center,zoom);
//alert("Position: "+center.toUrlValue()+"\nZoom: "+zoom);
document.getElementById('center').value=center+zoom;
var coord = document.forms.coord;
document.coord.submit();
});
Voici le code de mon form :
Code : Tout sélectionner
<form name="coord" method="post" action="okk.php">
<input type="text" name="center" value="">
<input name="go" type="submit" >
</form>
Le problème : Cela fonctionne a merveille sur IE mais sur Mozilla cela ne m'envoie pas le okk.php
Je pense que cela bloque a ce niveau :
document.coord.submit();
Avez vous quelques conseils ? Merci d'avance
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Publié : 15 oct. 2008, 11:05
par Asumbaa
Salut,
Ben oui, il y a un hic, regarde :
Ce serait pas plutôt :
Pour faire un peu mieux encore, tu pourrais mettre un identifiant à ton formulaire et le récupérer via un getElementById (l'attribut name est déprécié)
PS : il faudrait déplacer en Dev Web
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0
Publié : 15 oct. 2008, 11:33
par Invité
je viens de tenter :
var coord = document.forms.coord;
coord.submit();
Mais c'est la meme chose.
Si je te comprend bien je dois :
<form name="coord" method="post" action="okk.php">
<input type="text" name="center" value="" id="center">
<input name="go" type="submit" >
</form>
Mais le getElementById je l'ai deja (il sert a recuperer et placer les variables center et zoom)
Je ne comprends pas honnetement
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Publié : 15 oct. 2008, 11:40
par jpj
Bonjour,
Je déplace dans "Développement web".
Publié : 15 oct. 2008, 11:53
par calimo
Publié : 15 oct. 2008, 12:10
par martin
Asumbaa a écrit :(l'attribut name est déprécié)
Pas du tout

, mais il n'a pas du tout la même fonctionnalité.
L'attibut name sert pour nommer un champ de formulaire, c'est celui qui peut être récupéré côté serveur dans les variables POST par exemple.
quand tu utilises "document.getElementById('center')", tu recherches dans le document courant l'élément avec un id qui a pour valeur 'center', le nom de la méthode est explicite

. En aucun cas il ne te retourneras un élément avec un attribut name égal à 'center'.
Donc 2 solutions dans ton javascript :
- soit tu ajoutes un id='center', en plus de l'attribut name, et tu peux agir sur "document.getElementById('center')" qui est l'élément que tu recherches.
- soit tu y accèdes via document.forms, du genre "document.forms.coord.center" (pas testé), qui correspond bien à l'attibut name de l'élément cherché.
Publié : 15 oct. 2008, 12:51
par EpocInvité
ok mais le pb ne vient pas de la, le pb est : submit; il devrait envoyer à la page okk.php meme si le formulaire n'est pas bon.
Mais la rien.
Quelle est la maniere d'envoyer un formulaire sur mozilla ?
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Publié : 15 oct. 2008, 13:16
par martin
EpocInvité a écrit :
Quelle est la maniere d'envoyer un formulaire sur mozilla ?
http://developer.mozilla.org/en/DOM/form.submit
http://developer.mozilla.org/en/DOM/form
Sur quelle action ton code est il déclenché ?
Il est possible que Firefox 3 bloque certaines actions si elles ne sont pas le fait de l'utilisateur...
Publié : 15 oct. 2008, 13:33
par Invité
http://www.corsevilla.com/test/testt.php
Voila ma page. Le client centre en zoomant , dezomant, comme il veut, en cliquant sur sauvegarder, cela renvoie a okk.php
bouton Sauvegarder :
function MDControl() { }
MDControl.prototype = new GControl();
MDControl.prototype.initialize = function(map) {
var container = document.createElement("div");
var savepos= document.createElement("div");
savepos.title= "Sauvegarde";
savepos.className= "MDbuttons";
container.appendChild(savepos);
savepos.appendChild(document.createTextNode("Sauvegarde"));
GEvent.addDomListener(savepos, "click", function() {
var center = map.getCenter(); var zoom = map.getZoom();
saved.splice(0,2,center,zoom);
//alert("Position: "+center.toUrlValue()+"\nZoom: "+zoom);
document.getElementById('center').value=center+zoom;
var coord = document.forms.coord;
coord.submit();
});
...qui renvoie au submit
Le document.getElementById('center').value=center+zoom; lui est chqrgé de donner à <input type="text" name="center" value="" id="center"> les variables javascript afin qu'elles soient traitées en php. Cela fonctionne a merveille sur IE mais pas sur Mozilla
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Publié : 15 oct. 2008, 14:02
par Asumbaa
Salut,
Au clic sur "Sauvegarder", Firebug me crie :
document.getElementById("center") is null
Et en effet, ton input ne porte pas l'id "center".
Pour Martin :
Asumbaa a écrit:
(l'attribut name est déprécié)
Pas du tout Clin d'oeil , mais il n'a pas du tout la même fonctionnalité.
L'attibut name sert pour nommer un champ de formulaire, c'est celui qui peut être récupéré côté serveur dans les variables POST par exemple.
J'avais oublié de préciser :
sur l'élément form
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0
Publié : 15 oct. 2008, 14:24
par martin
peut être document.forms["coord"].submit() fonctionne mieux ?
ou document.getElementById("myForm").submit() (en mettant un id="myForm" sur le formulaire)
Publié : 15 oct. 2008, 14:37
par Invité
Asumbaa je viens de modifier mon code :
<form name="coord" method="post" action="okk.php" id="center">
<input type="text" name="center" value="">
<input name="go" type="submit" >
</form>
Cela fonctionne mais il me perd les variables en route...
Je pense qu'il doit y avoir confusion entre le nom du formulaire et le id du input.... Tu en penses quoi.
Merci pour votre aide précieuse
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Publié : 15 oct. 2008, 14:58
par Asumbaa
Eeee... C'était sur le input text name="center" qu'il fallait ajouter le id="center", non ?
Dans ton JS :
1/ placer la valeur dans ton champ : le champ porte l'identifiant "center", tu le cibles par document.getElementById('center') et tu y places la valeur
2/ validation du formulaire
- soit document.forms['coord'].submit();
- soit document.getElementById('idDuForm').submit après avoir donné l'identifiant idDuForm à ton formulaire
Non ?
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0
Publié : 15 oct. 2008, 15:16
par EpocInvité
Merci Beaucoup, cela fonctionne !!!!!!!
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)