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 :

fonction JS redirection


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut fonction JS redirection
    Bonjour :
    Voila j'ai crée une fonction de redirection comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script>
     function redir($url)
     { 
     	window.location='$url';
    }
     
     
     
    </script
    Je veux l'utiliser dans un OnChange comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="statut" id="statut" onChange="redir('requeteStatutADMIN.php')" style="display:  none;">
    Mais comme ca je suis redirigé vers la page :
    http://127.0.0.1/parcgestion/$url

    qui est biensur introuvable...

    Quelle est la bonne syntaxe à utiliser ??

    mERCI

  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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Deux choses:

    self plutot que window ...
    ensuite tu pase un string donc pas de quotes ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script>
     function redir($url)
     { 
     	window.location=$url;
    }
     
    </script>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut
    Parfait ça marche :
    cependant j'ai rencontré un petit soucis :
    Comment dois-je faire maintenant pour récupéré dans une variable , sur la page "redirigé", la valeur de la liste selectionné

    avant j'utilisé la méthode post , mais maintenant ???:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!empty($_POST['statut'])) 
    	{
    		 $statut = $_POST['statut']; 
    	}

  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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Tout dépend en fait de ce qu'est "statut" sur la page c'est quel type d'element ?
    et satut c'est un di ou un name ?

    Le truc c'est que tu n'est plus en soumission de formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script>
     function redir($url)
     {  	window.location.href=$url+'?'+document.?getElementsByName('statut')[0].value;
    }
    </script>
    si cela ne fonctionne pas il faudra modifier dynamiquement l'action du form pour y mettre $url et faire un submit du form

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut
    le 'statut' en fait c'est ma liste déroulante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="statut" id="statut" onChange="redir('requeteStatutADMIN.php')" style="display:  none;">
    J'ai modifié la fonction comme tu me la montré
    et sur la page requeteStatutADMIN.php j'ai mis du coup (mais je suis vraiment pas sur) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $statut=$_get['statut'];
    Mais ca ne marche pas

  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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    et en post ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut
    En fait je viens de voir que deja la fonction redi() ne marche plus :

    Depuis qu'on ai mis :
    window.location.href=$url+'?'+document.?getElementsByName('statut')[0].value;

  8. #8
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    oups méa grosse culpa !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.location.href=$url+'?'+document.getElementsByName('statut')[0].value;
    il y avait un ? en trop ..

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut

    Cela règle le problème pour la redirection mais pas le probleme de récupération de variable ( la valeur choisi dans la liste )

    j'ai essayé
    $statut=$_GET['statut'];
    $statut=$_POST['statut'];


    ??

  10. #10
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    regarde ce qu'il te mets dans l'url ...

    arf encore plus grosse mea culpa ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.location.href=$url+'?sattut='+document.getElementsByName('statut')[0].value;
    tellement l'habitude de ne le faire qu'avec javascript en parsant l'url que j'en oubilais l'essentiel pour php

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut
    Salut
    désolé pour ce retard , .....

    Bon , ca ne marche pas mieux ,
    Je vais réexpliquer le contexe :

    j'ai une liste déroulante qui après selection dans la liste redirige vers une page . Cette redirection se fais grace a une fonction javascript :



    fonction JS de redirection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script>
     function redir($url)
     {  
     
    	window.location.href=$url;
    }
    </script>
    liste déroulante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <select name="statut" id="statut" onChange="redir('javascript.php')" style="display:  none;">
    <option> choisir Statut 
    								 <?php 
    while ($result = mysql_fetch_row($sqltoto))
    {
    $NomStatut=$result[0];
                                                    
    echo "<option> $NomStatut </option>" ;
    }
     ?> 
      </option>
     </select>

    Le probleme étant d'afficher sur a page de redirection (javascript.php) la valeur de la liste séléctionée .....

  12. #12
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    heu tu sais comment on soumet un formulaire ???

    pourquoi essayer de réinventer l'action d'un formulaire ?

    sur le onchange tu mets un setTimeout qui soumet le form ... et dasn action tu mets la page php ...
    Comme ça coté php tu récupères la valuer de l'option selectionnée...

    Sinon il te faudra concaténer l'url avec la value de l'option selectionnée

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut
    cela semble en effet plus simple ... Comment marche le "setTimeout "???

    onChange="setTimeout " ???

  14. #14
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="setTimeout(function(){document.forms[0].submit()},100)"

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 65
    Points
    65
    Par défaut
    C BON ca marche , parfait !!!!!!!

    par contre je veux bien que tu m'explique comme meme :

    onchange="setTimeout(function(){document.forms[0].submit()},100)"

    merci encore

  16. #16
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="setTimeout(function(){document.forms[0].submit()},100)"
    steTimeout est une fontion qui retarde l'execition d'une fonction d'un certain nombre de millisecondes.

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(function(){alert('pas trop attendu ?')},5000)
    l'alert apparaitre 5 secondes après l'interprétation de la ligne...

    pourquoi l'utiliser sur le onchange d'un select ?
    l'evenement onchange d'un select est assez versatile, il se peut que parfois (assez curieusement , bug ?) sur certains browsers et sur certaines plateformes le onchange se lance avant que la nouvelle valeur de l'option soit prise en compte, une temporisation de 100 millièmes de seconde suffit en général à s'assurer que la nouvelle valuer soit bien prise en compte.
    Certains autres évènement declenchés sur le onchange d'un select nécessitent également une tempo...
    Il y a récemment eu un thread sur un onfocus déclenché par un onchange, le onfocus n'est pris en compte que si l'on mets une tempo ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d'aide pour fonction et redirection
    Par roilion dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/09/2008, 10h29
  2. [AJAX] Fonction de redirection et de retour en arrière en Ajax
    Par FujitSiem dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 01/02/2008, 17h23
  3. Fonction exec redirection vers fichier
    Par wkd dans le forum POSIX
    Réponses: 10
    Dernier message: 22/01/2007, 23h45
  4. [Tableaux] fonction de redirection
    Par winnie82 dans le forum Langage
    Réponses: 1
    Dernier message: 08/06/2006, 15h49

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