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

Eléphanteau du PHP | 25 Messages

16 juin 2008, 17:19

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
	}
}

Eléphant du PHP | 74 Messages

16 juin 2008, 21:22

: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.

Mammouth du PHP | 19672 Messages

16 juin 2008, 22:53

Au lieu de "this.location.etc..." écris plutôt "window.location.etc...", tu vas voir que ça fonctionnera nettement mieux ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 juin 2008, 01:37

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() ?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 25 Messages

17 juin 2008, 18:45

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+

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 juin 2008, 20:48

Hé bien rajoute un exit() juste après l'instruction comme ça:
this.location.href="../FrameMain.htm";
exit();
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

17 juin 2008, 21:43

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...

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

17 juin 2008, 22:32

fait un alert("...") juste avant l'instruction pour voir si l'exécution arrive à son niveau.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

17 juin 2008, 22:49

Oui ça passe ! J'ai bien le Alert().
A demain, pour l'instant je dois te laisser.
Merci a demain.

Invité
Invité n'ayant pas de compte PHPfrance

18 juin 2008, 20:42

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 ?

Eléphanteau du PHP | 25 Messages

19 juin 2008, 20:05

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.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

19 juin 2008, 20:38

Et si tu mettais le chemin complet de l'url pour être sûr :
this.location.href="http://tonsite/... etc .../FrameMain.htm";
exit(); 
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 25 Messages

19 juin 2008, 20:51

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.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

19 juin 2008, 21:23

T'as combien de copies de ton script js sur ton site ?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 25 Messages

19 juin 2008, 21:29

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.