IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Redirection par chemin relatif


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Par défaut Redirection par chemin relatif
    Bonjour à tous,

    Je suis sur la fin de la mise en place d'un formulaire d'inscription pour visite guidée. (3 jours que je bosse dessus)

    Petite explications sur la procédure utilisée. L'utilisateur rempli un formulaire. Lors de l'envoi de ce formulaire, je capte l'event onClick et réalise une vérification par Ajax. Je commence par une vérification des données saisies côté serveur, au travers d'une vérification PHP. Une fois la valeur retournée, je fais appel à une deuxième page PHP qui elle est chargée d'injecter les données dans ma BDD. Le message de retour de cette page est soit une erreur, soit la chaine './../'

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(mail($to, $subject, $message, $headers)){
    	echo ('./../');
    }
    else{
    	echo 'Erreur: de mail';
    }
     
    /* redirection à la page d'accueil */
    exit;

    Maintenant, une fois la réponse récupérée par ma fonction "Javascript/AJAX", je souhaite réaliser une redirection en cas de réception d'un message autre que "Erreur: ...".
    J'ai donc rédigé ceci
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if( connection.responseText.indexOf('Erreur: ') == -1 )
    	window.location(connection.responseText);


    Malheureusement, ma redirection ne marche pas. Il revient sur la page sur laquelle j'ai mon formulaire, alors que je souhaiterais revenir sur la page d'accueil (dans un premier temps du moins, par la suite, affichage d'un message de confirmation d'envoi du formulaire).

    Quelqu'un aurait-il une idée de pourquoi ma redirection ne marche pas ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	window.location.assign(connection.responseText);
     
    ou
     
    	window.location.href=connection.responseText;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Par défaut
    Bon ben, c'est officiel, je suis vraiment trop c**.

    Voici maintenant le code que j'ai, et çà ne marche toujours pas.

    Code de la page d'ajout dans la BDD :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(mail($to, $subject, $message, $headers)){
    	echo ('./index.php');
    }
    else{
    	echo 'Erreur: de mail';
    }
     
    /* redirection à la page d'accueil */
    exit;
    ?>

    Et le code de mon AJAX :
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    connection.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    connection.send(requete);
    if( connection.responseText.indexOf('Erreur: ') == -1 )
    	window.location.href=connection.responseText;

    Mais rien à faire, il revient toujours sur la page de mon formulaire. J'ai même essayer en mettant le chemin relatif, c-à-d sans préciser le nom de la page index.php, mais rien n'y fait.
    Le fait que mon code Javascript est dans un sous-répertoire du site, j'ai même essayé avec './../index.php', mais cela ne change rien.
    L'autre fonction précisée par SpaceFrog (window.location.assign(connection.responseText) ne marche pas non plu ...

    Pouvez-vous me dire d'où peut provenir l'erreur ?

    Autres petits soucis rencontré, mais ne rentre pas dans le cadre de la question, mes regex ne marche pas sur caractères accentués, malgré qu'ils soient précisés dans la regex.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ta requete ajax me semble un peu courte ...
    tu testes le readystatus ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Par défaut
    Bon vous voulez du code, alors en voilà :

    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    connection.open("POST", "./inc/reservation.php", false);
    /* informations de la visite */
    requete = "groupname="+document.getElementById("groupname").value; /* input text */
    requete += "&grouppostal="+document.getElementById("grouppostal").value; /* input text */
    if( document.getElementById("languefr").checked) /* radio */
    	requete += "&langue=FR";
    else if( document.getElementById("languede").checked)
    	requete += "&langue=DE";
    else if( document.getElementById("languenl").checked)
    	requete += "&langue=NL";
    else
    	requete += "&langue=FR";
    requete += "&participants="+document.getElementById("participants").value; /* input text */
    requete += "&mobred="+document.getElementById("mobred").value; /* input text */
    requete += "&datevisite="+document.getElementById("datevisite").value; /* input text*/
    requete += "&heurevisite="+document.getElementById("heurevisite").value; /* input text */
    /* informations du responsable */
    requete += "&respfirst="+document.getElementById("respfirst").value; /* input text */
    requete += "&resplast="+document.getElementById("resplast").value; /* input text */
    requete += "&respaddr="+document.getElementById("respaddr").value; /* input text */
    requete += "&resptown="+document.getElementById("resptown").value; /* input text */
    requete += "&resppostal="+document.getElementById("resppostal").value; /* input text */
    requete += "&respphone="+document.getElementById("respphone").value; /* input text */
    requete += "&respmail="+document.getElementById("respmail").value; /* input text*/
     
    /* vérifie si guidée ou non */
    if( document.getElementById("oguidee").checked) /* radio */
    	requete += "&guidee=1";
    else
    	requete += "&guided=0";
    /* vérifie si carnaval ou non */
    if( document.getElementById("ocarnaval").checked) /* radio */
    	requete += "&carnaval=1";
    else
    	requete += "&carnaval=0";
    /* vérifie si Atelier papier ou non */
    if( document.getElementById("oapapier").checked) /* radio */
    	requete += "&apapier=1";
    else
    	requete += "&apapier=0";
    /* vérifie si Fabrication papier */
    if( document.getElementById("ofpapier").checked) /* radio */
    	requete += "&fpapier=1";
    else
    	requete += "&fpapier=0";
    /* vérifie si trésor ou non */
    if( document.getElementById("otresor").checked) /* radio */
    	requete += "&tresor=1";
    else
    	requete += "&tresor=0";
    requete += "&montant=0";
    connection.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    connection.send(requete);
    if( connection.responseText.indexOf('Erreur: ') == -1 )
    	window.location.href=connection.responseText;

    Ceci est toutes la requête d'appel à la page d'insertion des données dans la BDD.

    Je ne vois pas d'où provient le soucis ...

    Dans la réponse, j'ai bien la valeur suivante pourtant (d'après Firebug du moins ) :

    ./../index.php

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ben je ne vois toujours pas le teste sur le readystatus de ta requete ajax ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/10/2011, 11h26
  2. remplacer chemin absolu par chemin relatif
    Par alaninho dans le forum Général Python
    Réponses: 11
    Dernier message: 19/05/2011, 11h23
  3. [OpenOffice][Texte] [Macro] : manipuler un fichier texte en chemin relatif par rapport au document
    Par spiral dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 15/01/2009, 17h10
  4. Lier 2 classeurs par chemin relatif
    Par Laestic dans le forum Excel
    Réponses: 2
    Dernier message: 10/01/2008, 17h08
  5. Chemin relatif par rapport à un fichier
    Par thibouille dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2007, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo