Page 1 sur 2

Pbm"location.href", un fonctionne , pas l'autre ?

Posté : 16 juin 2008, 17:19
par romca
Bonjour,
Sur un script de test, après que les tests soient ok, je redirige l'explorateur (IE7) vers une page à l'aide de "location.href" mais voilà cela ne fonctionne pas.
Je l'ai pourtant fait avec la fonction confirm() (et cela dans le même script en .js dans une autre fonction) et cela fonctionne très bien, mais voilà pas dans cette fonction, je ne comprend pas.
Voilà le code de la fonction ou "location.href" ne fonctionne pas et plus bas il y a également "location.href" mais celui là qui fonctionne (dans le script en .js il se trouve dans une autre fonction en haut de la fonction de test).
Si quelqu'unpeu m'aider, merci.
Voici la fonction de test formulaire "Controle_inscription()"
function Controle_inscription()
{
var nomUser=this.inscriptionJ.nomUser.value;
var prenomUser=this.inscriptionJ.prenomUser.value;
var passwordUser=this.inscriptionJ.passwordUser.value;
var passwordUser2=this.inscriptionJ.passwordUser2.value;
var serviceUser=this.inscriptionJ.serviceUser.value;
var telephoneUser=this.inscriptionJ.telephoneUser.value;
var emailUser=this.inscriptionJ.emailUser.value;

//alert("Vous avez entré " +nomUser+ prenomUser+ emailUser+ passwordUser+ serviceUser+ telephoneUser+emailUser);

// Test si les champs obligatoires ont bien été remplis
	if ( nomUser=="" || prenomUser=="" || passwordUser=="" || emailUser=="" )
	{
		alert("Un des champs obligatoire est vide, veuillez refaire une saisie SVP");
		exit();
		
	}
// Test: verification de l'égalité des passwords
	if ( passwordUser!=passwordUser2)
	{
		alert("Veuillez resaisir votre mot de passe SVP");
		exit();
	}
// Test du champ email
	var test1_emailUser=emailUser.indexOf("@");
	var test2_emailuser=emailUser.indexOf(".");
	if(test1_emailUser=="-1" || test2_emailuser=="-1")
	{
		alert("La syntaxe de votre adresse email est mauvaise, veuillez refaire une saisie SVP");
		exit();
	}

	
// Si tout est OK on renvoie les valeurs vers un script PHP qui les récupérera par la variable globale GET
	// test: alert("Formulaire valide");
	this.location.href="../FrameMain.htm";
	
	//location.href="../scriptsP/S_InscrptionJavascript.php?nomUser='nomUser'&prenomUser='prenomUser'
//&passwordUser='passwordUser'&serviceUser='serviceUser'&telephoneUser='telephoneUser'&emailUser='emailUser'";

}
Et le code de la fonction Alert_session() ou le "location" fonctionne (se trouve plus haut dans le script .js au dessus de la fonction de test du formulaire)
function Alert_session()
{
	//Ouverture d'une fenetre prédefinie par javascript avec 2 bouton au choix
	var result=confirm("Veuillez vous identifier SVP, OK: Retourner à la page d'acceuil, ANNULER: Inscivez vous");
	//Choix en fonction du bouton actionnée
	if (result){
	this.location.href="../FrameMain.htm";//Si bouton ok
	}
	else{
	this.location.href="../Pages/Inscription.php";//Si bouton Annuler
	}
}

Posté : 16 juin 2008, 21:22
par b.jerome
:oops: je suis navré mais je ne comprends pas vraiment ton explication. Si tu pouvais faire plus clair et nous expliquer en détail ton probléme et ce que tu cherches à faire. Peut être que ca incitera des gens à se pencher sur ton message.

Posté : 16 juin 2008, 22:53
par Cyrano
Au lieu de "this.location.etc..." écris plutôt "window.location.etc...", tu vas voir que ça fonctionnera nettement mieux ;)

Posté : 17 juin 2008, 01:37
par sadeq
Questions:
1. Quelles est l'erreur que tu reçois ?
2. Tu utilise un chemin relatif qui revient au répertoire précédant l'emplacement en cours "../" dans le code :

Code : Tout sélectionner

this.location.href="../FrameMain.htm";
Es-tu sûr de l'emplacement correct par rapport à la page "FrameMain.htm" lors de l'exécution de la fonction Controle_inscription() ?

Re-Explications

Posté : 17 juin 2008, 18:45
par romca
Salut a tous,
Pour répondre à Cyrano j'ai mis window mais c'est idem.
Pour répondre à Sadeq, oui j'ai un lien relatif car je remonte d'un répertoire pour atteindre la page "FrameMain.htm" qui fait partie d'un jeu de cadre.
Pour Jerome pour simplifier, ce que je veux dire c'est que dans le même fichier en .js j'utilise une autre fonction "Alert_session()"ou dedans j'utilise cette même syntaxe avec le location (également avec le même chemin), et là ça fonctionne bien car je reviens bien sur la page "FrameMain.htm":
Je vous redonne la fonction ou le "location" fonctionne: Merci.
function Alert_session()
{
	//Ouverture d'une fenetre prédefinie par javascript avec 2 boton au choix
	var result=confirm("Veuillez vous identifier SVP, OK: Retourner à la page d'acceuil, ANNULER: Inscivez vous");
	//Choix en fonction du bouton actionnée
	if (result){
	this.location.href="../FrameMain.htm";//Si bouton ok
	}
	else{
	this.location.href="../Pages/Inscription.php";//Si bouton Annuler	
                      }
}
J'ai oublié de répondre à l'autre question de Sadeq qui est importante. Je n'ai pas d'erreur, en fait je reste sur la même page de formulaire.
A+

Posté : 17 juin 2008, 20:48
par sadeq
Hé bien rajoute un exit() juste après l'instruction comme ça:
this.location.href="../FrameMain.htm";
exit();

Posté : 17 juin 2008, 21:43
par Invité
Ok merci mais c'est idem, je reviens toujours sur la page du formulaire d'inscription et pas sur la page FrameMain.htm. Comprend pas...

Posté : 17 juin 2008, 22:32
par sadeq
fait un alert("...") juste avant l'instruction pour voir si l'exécution arrive à son niveau.

Posté : 17 juin 2008, 22:49
par Invité
Oui ça passe ! J'ai bien le Alert().
A demain, pour l'instant je dois te laisser.
Merci a demain.

Posté : 18 juin 2008, 20:42
par Invité
Oui ça passe ! J'ai bien le Alert().
A demain, pour l'instant je dois te laisser.
Resalut à tous, auriez vous donc une autre idée ou une autre solution ?

Posté : 19 juin 2008, 20:05
par romca
J'utilise des frames et je viens de voir que la syntaxe n'est pas la même pour appeler une page dans un frame.
J'ai déjà essayer celle là pour tester mais rien non plus:
document.frames.FrameMain.location.href='http://www.google.fr'; 
J'utilise IE7
je vais chercher mais si quelqu'un à une idée merci.

Posté : 19 juin 2008, 20:38
par sadeq
Et si tu mettais le chemin complet de l'url pour être sûr :
this.location.href="http://tonsite/... etc .../FrameMain.htm";
exit(); 

Posté : 19 juin 2008, 20:51
par romca
salut sadeq,
J'ai essayé
this.location.href="http://localhost/FrameMain.htm";
	exit();
exit();
et
this.location.href="http://localhost/";
	exit();
Mais toujours pareil je reviens sur la même page d'inscription.

Posté : 19 juin 2008, 21:23
par sadeq
T'as combien de copies de ton script js sur ton site ?

Posté : 19 juin 2008, 21:29
par romca
J'en ai sur toutes les pages en lien à partir du menu dans le Frame gauche.
La première fonction du script js envoie un message si la session n'est pas ouverte,
c'est la fonction Alert_sesssion() que j'ai mise plus haut.