Pb Javascript Mozilla

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
EpocInvité

Pb Javascript Mozilla

Message 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)
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,

Ben oui, il y a un hic, regarde :

Code : Tout sélectionner

var coord = document.forms.coord;
document.coord.submit(); 
Ce serait pas plutôt :

Code : Tout sélectionner

var coord = document.forms.coord;
coord.submit(); 
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
Invité

Message 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)
Avatar de l’utilisateur
jpj
Animal mythique
Messages : 25261
Inscription : 01 août 2005, 15:38

Message par jpj »

Bonjour,

Je déplace dans "Développement web".
► Si votre problème est [Résolu], svp, marquez-le.
► Pas de support par mp, l’aide se fait sur le forum.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Voir http://developer.mozilla.org/en/DOM/document.forms pour l'utilisation de document.forms :wink:

Je pense que ce qu'il te faut c'est http://developer.mozilla.org/En/DOM/Doc ... lementById :wink:
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message 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é.
EpocInvité

Message 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)
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message 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...
Invité

Message 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)
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message 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 :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

peut être document.forms["coord"].submit() fonctionne mieux ?

ou document.getElementById("myForm").submit() (en mettant un id="myForm" sur le formulaire)
Invité

Message 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)
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message 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
EpocInvité

Message 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)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités