Probleme JS après rechargement page parent.

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 !
Monococo
Arias
Messages : 2
Inscription : 26 janv. 2009, 00:53

Probleme JS après rechargement page parent.

Message par Monococo »

Bonjour à tous,

Je poste pour la première fois sur ce forum suite à un problème épineux que je rencontre actuellement.

Je développe une application professionnelle utililisant plusieurs fenêtres pour une plus grande liberté d'action des utilisateurs. Ces fenêtres sont généralement ouvertes via JS par un window.open.

Je rencontre le souci suivant :

Dans la dernière fenetre ouverte, l'utilisateur doit remplir un formulaire comportant trois zones select consécutives. A chaque événement onClick sur l'une des zones, je passe le formulaire en POST pour mettre la donnée saisie en session via PHP. Jusque là tout se passe bien.

Lorsque l'utilisateur a correctement utilisé les 3 zones, il doit cliquer sur un bouton Sauver qui va soumettre à nouveau le formulaire avec une variable cachée HIDDEN qui servira à indiquer à PHP qu'il faut utiliser une fonction PHP d'enregistrement vers une base mySQL. Là encore tout se passe bien.

Une fois l'enregistrement effectué, j'affiche dans la dernière fenêtre un message d'information : "Matériel correctement enregistré" puis à l'aide d'un SetTimeOut de 3s, je renvoie l'utilisateur au début du formulaire pour s'il désire enregistrer un nouveau matériel. Parallèlement, je rafraichis la fenetre ouvrante ( opener ) via JS. Le code exact est le suivant :

var CurrCount = 0;
setTimeout('Redirect()',1000);

function Redirect() {
CurrCount++;
if (CurrCount >= 2){
self.location.href='mapage.php?PHPSESSID=mon_id_session&op=une_fonction';
opener.location.href='mon_autre_page.php?PHPSESSID=mon_id_session&op=mon_autre_fonction';
} else {
setTimeout('Redirect()',1000);
}
}

Les deux pages sont correctement actualisées par JS. La page opener est mise à jour et la page utile retrouve le formulaire vide non encore rempli pour saisir un nouveau matériel.

Le problème survient alors : dans la dernière page ouverte, celle ou on sélectionne le matériel à l'aide des 3 zones select, si on ouvre l'une des listes, il devient impossible de cliquer sur un élément. La liste s'ouvre bien mais plus aucun évènement ne se produit dedans. J'ai testé au niveau de JS et l'évenement onClick ne se déclenche plus. La liste reste ouverte et même les touches clavier semblent inopérantes.

Si on ferme la fenetre en question et qu'on la rouvre via la fenetre opener ( comme la toute première fois ), alors les listes reprennent leur comportement normal.

J'espère avoir été assez clair et suis curieux de savoir si quelqu'un a une piste de recherche car actuellement je n'ai trouvé aucune solution à ce bug ( si c'en est un ).

D'avance merci pour vos conseils.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: Probleme JS après rechargement page parent.

Message par calimo »

Monococo a écrit :Dans la dernière fenetre ouverte, l'utilisateur doit remplir un formulaire comportant trois zones select consécutives. A chaque événement onClick sur l'une des zones, je passe le formulaire en POST pour mettre la donnée saisie en session via PHP. Jusque là tout se passe bien.
Attention aux personnes qui utilisent le clavier...
http://www.w3.org/TR/WCAG20/#keyboard-operation

Pour le reste je n'ai pas franchement de réponse.
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,

Que se passe-t-il si dans ta popup, au moment où tu mets "matériel bien enregistré", tu mets juste un lien vers ton petit formulaire ? (genre "saisir un nouveau matériel")
Donc sans rafraichir par JS ?

(ceci pour essayer de cerner à quel moment ça foire)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0
Monococo
Arias
Messages : 2
Inscription : 26 janv. 2009, 00:53

Probleme JS après rechargement page parent.

Message par Monococo »

Bonjour et merci pour vos réponses

Après enregistrement, je me sers d'un settimeout de 3s avant de rediriger l'utilisateur vers le formulaire remis à zéro, donc pas de lien...

Voir code JS ci dessus, tout y est.

Encore merci pour vos pistes de recherche...

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Oui, j'avais compris.
Je te demandais d'essayer avec une autre méthode pour cibler un peu l'origine du problème...

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 »

Je ne suis pas sûr de ce que peut contenir window.opener dans la popup APRES le rafraichissement des 2 window :s, le problème vient peut être de là, vérifie sa valeur.

Qu'indique la console d'erreur (JavaScript) de Firefox ? Et il vaut mieux la régler sur strict.
Répondre

Qui est en ligne ?

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