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 :

parametrer l'action d'un formulaire html


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 383
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut parametrer l'action d'un formulaire html
    Bonsoir,

    j'ai une fonction qui lance un formulaire html (lui-même variable) et dont je souhaiterais rendre paramétrable l'action ; voilà ce que j'ai fait :

    fonction principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    include 'mail.php';
    ?>
     
    <script>
    if (form=="pere") </script> <?php fct_form(1); ?>
    fonction mail.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     function fct_form($action)
     {
     switch($action)
     {
     case 1: $action="pere";
     break;
    ---
     }
     ?>
    ---
    <form action="action_mail_<?php echo $action;?>.php" method="post" enctype="multipart/form-data">
    ...
    action_mail_pere.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    function mail_piece_attachee() //à terme, sera déplacée
     {
    ... notamment pièce attachée			
     
    }
     
    mail_piece_attachee();
    ?>
    Comme ça, je ne reçois pas de mail alors que si dans l'action dans mail.php, je mets action_mail_pere.php, je reçois bien le mail. Qu'est-ce qui ne va pas ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script>
    if (form=="pere") </script> <?php fct_form(1); ?>
    Tu ne peux pas appeller du PHP a partir du Javascript.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 383
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    oui, mais justement si le test sur la variable form est bien fait en js, l'appel à la fonction PHP est en dehors des balises <script> (et d'ailleurs, ça, ça marche).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    oui mais ça marche à tout les coups : ton test javascript ne peut pas conditionner l'execution du PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 383
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Bon, je crois comprendre que le PHP va être exécuté (et traduit en html) avant que le test js ne soit effectué, mais le code html généré ne reste-t-il pas conditionné par le js ? Et en fait, c'est la seule solution que j'ai trouvée pour effectuer un graphe d'état (étape 1 => étape 2 => étape 3 => etc). Voilà ce que j'ai fait :
    code PHP principal :
    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
    16
    17
    18
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html; charset=utf-8"
     http-equiv="content-type">
      <title></title>
      <script language="javascript" src="mailpattacheecorrige2.js"></script>  
    </head>
    <html>
    <body>
    <?php 
    include 'mail.php';
    ?>
    <script>
    if (form=="pere") </script> <?php fct_form(1); ?>
    ...
    </body>
    </html>
    mailpattacheecorrige2.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function init() {
    	form="pere";
    }
    window.onload = init;
    Ce n'est pas encore fait, mais mon idée, comme j'essaie de l'exprimer, me semble non valable ; en gros, le but, c'est de proposer à l'utilisateur successivement plusieurs formulaires html ; une fois qu'il a répondu à l'un, un autre lui est proposé, etc. Comment pourrais-je faire ça ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 531
    Points
    3 531
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Il y a 1000 façons de faire.

    l'action du formulaire peut être déterminé avant ou après en javascript aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (...) {
    
    mon_form.action = "xxxx.php";
    mon_form.submit();
    
    }
    On peut aussi imaginer que c'est toi qui va diriger l'appel manuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    mon_form.submit(function() {
     
    // tu fait toi même l'appèle à une page..
    if ($action == X)
    $.Get( data = {xxx} , url = "xxxxxx.php" );
     
    if ($action == Y)
    $.Get( data = {xxx} , url = "yyyyyy.php" );
     
    // le formulaire n'est pas envoyé
    return false;
     
    });
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 383
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Merci de m'apporter une réponse, mais même si j'ai un peu de mal à la comprendre, elle me donne une petite idée à partir de la première solution :
    programme principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form name="mon_form" action="action_mon_form.js" method="post" enctype="multipart/form-data">
    ...
    <!--certains champs sont conditionnés par la variable etape-->
    action_mon_form.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    switch (etape) {
    case etape = yy :
    mon_form.action = "xxxx.php";
    mon_form.submit();
    etape++;
    break;
    ...
    }
    est-ce qu'elle tient la route ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 383
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Apparemment non, vu que si je clique sur "envoyer", ça m'ouvre la fenêtre "open/save..." ; on a pas le droit que l'action soit un fichier js ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. action d'un formulaire html
    Par laurentSc dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 16/12/2012, 15h30
  2. modifier le action d'un formulaire HTML
    Par ballantine's dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/01/2010, 13h08
  3. action formulaire html en js
    Par laurentSc dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/12/2009, 13h47
  4. action var PHP d'un formulaire html
    Par laurentSc dans le forum Langage
    Réponses: 3
    Dernier message: 18/12/2009, 20h49
  5. [HTML] 2 actions dans un formulaire
    Par chrosnir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 22
    Dernier message: 14/01/2008, 08h24

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