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

Langage PHP Discussion :

Rediriger plusieurs url dans le "Action"


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut Rediriger plusieurs url dans le "Action"
    Bonsoir, bonsoir,

    Je cherche à changer les url d'un "action" d'un formulaire à ma guise...

    A savoir, si l'on clique sur le bouton de type "submit", ca change l'url, ou bien si l'on clique sur un bouton, ou fait un changement au hasard dans une liste, je voudrais que l'url du action puisse changer où je le veux


    J'ai testé avec les sessions, ca a l'air de fonctionner, mais je voudrais changer l'url avec des variables (car je trouves les sessions pas trop pratiques point de vue retour de page, ou meme changement de menus, remise à l'origine de l'url,etc..)

    A savoir par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action=" <? echo $_SESSION['toto'] ; ?> "
     
    //et après le formulaire je met :
     
    if (isset($_POST['bouton_du_submit'] ) ) $_SESSION['toto']="toto.com" ;
    là ca marche...

    mais si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action=" <? echo $variable; ?> "
     
    //et après le formulaire je met :
     
    if (isset($_POST['bouton_du_submit'] ) ) $variable="toto.com" ;
    Bah là ca marche plus :'(

    Bref, y'a t i l une solution autre que les sessions pour faire passer des url différentes dans le "action" ?

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    C'est totalement normal que ca ne fonctionne pas étant donné que quand tu submit ta page va revenir à son état initial ainsi dans ton 2eme exemple tu ne pourras jamaisa voir toto.com

    Comme solution à part les sessions tu as la base de données éventuellement

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par guitou12
    C'est totalement normal que ca ne fonctionne pas étant donné que quand tu submit ta page va revenir à son état initial ainsi dans ton 2eme exemple tu ne pourras jamaisa voir toto.com

    Comme solution à part les sessions tu as la base de données éventuellement
    edit : alors à quand la redirection php ou l'on veut dans notre page ??? Si c'est possible en haut d'une page, pourquoi ne le serait pas dans n'importe quel partie de notre page Web. Si j'en conclue ce que tu viens de dire, je suis obligé de passer par le javascript pour rediriger mon "action" à ma guise ?

    Donc le php pour les redirections des formulaires à volonté, c'est possible, mais c'est bien la galère comparé au javascript si je comprend bien ?

    D'autant plus que je viens à l'instant de remarquer que la redirection avec les sessions ne s'effectuait qu'au bout du 3ème clic de mon bouton submit Oo Bref, ca m'embrouille...Si quelqu'un avait des explications ou solutions...

  4. #4
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par Alexino2
    edit : alors à quand la redirection php ou l'on veut dans notre page ??? Si c'est possible en haut d'une page, pourquoi ne le serait pas dans n'importe quel partie de notre page Web. Si j'en conclue ce que tu viens de dire, je suis obligé de passer par le javascript pour rediriger mon "action" à ma guise ?

    Donc le php pour les redirections des formulaires à volonté, c'est possible, mais c'est bien la galère comparé au javascript si je comprend bien ?
    Tu as tout compris

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je relance le sujet car justement je l'ai fait en javascript

    voici mon code :

    dans le header

    Code X : 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
    <html>
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title></title>
    
    <meta name="description" content="">
    <meta name="keywords" content="">
    <script language="javascript" type="text/javascript">
    //redirection lien
    function liens(){
    
    if(document.formulaire.menu.options[1].selected == true) {
    document.formulaire.action("http://www.google.fr");
    
    
    }
    else if (document.formulaire.menu.options[2].selected == true) {
    document.formulaire.action("http://www.yahoo.fr");
    
    
    }
    
    else if(document.formulaire.menu.options[3].selected == true) {
    document.formulaire.action("http://www.wanadoo.fr");
    
    
    
    }
    
    else if(document.formulaire.menu.options[4].selected == true) {
    document.formulaire.action("http://www.voila.fr");
    
    
    
    }
    
    }
    
    </script>


    dans le body :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <form name="formulaire" method="post">
    <select name="menu">
     
    <option selected="selected"></option>
    <option>choix1</option>
    <option>choix2</option>
    <option>choix3</option>
    <option>choix4</option>
     
    </select>
     
     
    <input name="bouton" type="image" src="images/ok.gif" alt="Valider" onclick="liens()">


    Par contre, n'y a t -il pas un moyen plus optimal de faire ça car quand on a une liste de 20 éléments c'est pas terrible !!!

    Aussi j'aimerai savoir comment faire pour ouvrir le lien après avoir cliqué sur ok dans une nouvelle fenêtre (et que ce soit compatible sur IE et Firefox au moins)

    Merci

  6. #6
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Par contre, n'y a t -il pas un moyen plus optimal de faire ça car quand on a une liste de 20 éléments c'est pas terrible !!!
    Optimal dans quel sens ? Sinon pour etre sur que ton menu soit déroulant size="1"

    Aussi j'aimerai savoir comment faire pour ouvrir le lien après avoir cliqué sur ok dans une nouvelle fenêtre (et que ce soit compatible sur IE et Firefox au moins)
    target="_blank" dans le <form>

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Optimal dans quel sens ?

    Je veux dire plutôt "optimisé" => une méthode valable dans n'importe quelle situation .. je pense notamment en utilisant un <select id="choix> par exemple et en utilisant <option value ="adresse internet">

    Mais je ne sais pas comment récupérer cette value pour envoyer la page vers le bon lien..

    Merci !!

  8. #8
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    edit : alors à quand la redirection php ou l'on veut dans notre page ??? Si c'est possible en haut d'une page, pourquoi ne le serait pas dans n'importe quel partie de notre page Web. Si j'en conclue ce que tu viens de dire, je suis obligé de passer par le javascript pour rediriger mon "action" à ma guise ?
    Pour info tu peux rediriger depuis où tu veux dans la page en utilisant la bufférisation. Mais si t'en arrives à devoir faire cela c'est en général qu'il y a un problème de conception du truc. Pour le multi-boutons en PHP tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // haut de page
    if(isset($_POST['buttonSuppr'], $_POST['id'])) {
    header("Location: supprimer.php?id=".$_POST['id']);
    }
    else if(isset($_POST['buttonEdit'], $_POST['id']) {
    header("Location: modifier.php?id=".$_POST['id']);
    }
    liloute8092, en js tu peux faire ceci, plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script>
    function processChange(select)	{
    select.form.action = select.options[select.selectedIndex].value;
    }
    </script>
     
    <form action="index.php">
    <select onChange="processChange(this);">
    <option value="http://zerze1rzer.zerze/p.php">1</option>
    <option value="http://zerz2erzer.zerze/p.php">2</option>
    <option value="http://zerz3erzer.zerze/p.php">3</option>
    <option value="http://zerz4erzer.zerzep.php">4</option>
    </select>
    <input type="submit" name="ok" value="ok">
    </form>
    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form action="index.php">
    <select id="s">
    <option value="http://zerze1rzer.zerze/p.php">1</option>
    <option value="http://zerz2erzer.zerze/p.php">2</option>
    <option value="http://zerz3erzer.zerze/p.php">3</option>
    <option value="http://zerz4erzer.zerzep.php">4</option>
    </select>
    <input type="submit" name="ok" value="ok" onClick="processChange(this.form['s'])">
    </form>
    Bye

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Merci ça fonctionne parfaitement... mais je suis un peu frustrée de ne pas réussir cette méthode avec javascript....

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

Discussions similaires

  1. plusieurs forward dans la meme action
    Par mima_mine dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/07/2008, 20h23
  2. Scripter IE7 pour ouvrir plusieurs url dans des onglets
    Par Ttienne dans le forum VBScript
    Réponses: 13
    Dernier message: 03/04/2008, 00h34

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