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 :

problème du test d'un bouton image appuyé


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Par défaut problème du test d'un bouton image appuyé
    sur ma page j'ai un formulaire et 3 images qui font office de bouton submit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     <form method="post" action="" name="form">
    ........
    <input type="image" name="etape12" onClick="envoyer_form('bon2b.php')" src="img/2B_off.jpg" border="0">
    <input type="image" name="etape13" onClick="envoyer_form('bonm.php')" src="img/2011_off.jpg" border="0">
    <input type="image" name="etape14" onClick="envoyer_form('bond.php')" src="img/Divers_off.jpg" border="0">
    .......
    </form>
    je valide mon formulaire via le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script language="javascript">
    function envoyer_form(pageTraitement) {
      document.form.action = pageTraitement;
      document.form.submit();
    }
    </script>

    Jusque là ca marche, et je suis rediriger vers la page bonne page.

    Sur la page concernée, j'ai ceci comme est pour savoir sur quelle image on a appuyé et quelle données il faut traiter, mais rien ne se passe

    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
     
    if (isset($_POST['etape12'])) 
    { 
    echo"<script language=\"Javascript\">alert(\"ok bouton 12\");</script>";
    ...
    }
    if (isset($_POST['etape13'])) 
    { 
    echo"<script language=\"Javascript\">alert(\"ok bouton 13\");</script>";
    ...
    }
    if (isset($_POST['etape14'])) 
    { 
    echo"<script language=\"Javascript\">alert(\"ok bouton 14\");</script>";
    ...
    }
    D'ou viendrait l'erreur ?

    Merci

  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
    Par défaut
    As tu controlé ce que contenait $_POST ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Par défaut
    oiu j'ai controlé, et effectivement elle contient quelque chose, donc la condition devrait se faire logiquement.

  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
    Par défaut
    que contient $_POST ?
    il n'y a pas de magie : si la condition ne passe pas, c'est que les valeurs ne correspondent pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Par défaut
    à mon avis j'étais très endormi hier soir... apparemment elle ne contient rien...

    ma fonction javascript fait en tout cas une partie du traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script language="javascript">
    function envoyer_form(pageTraitement) {
      alert("ok traitement bouton 12");
      document.form.action = pageTraitement;
    }
    </script>
    le document.form.action a été traité vu que je suis redirigé vers la bonne page.

    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form.submit();
    comment savoir si cela a été fait ?

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Normalement tu n'as pas besoin de sur-couche JS (sur le onclick par exp.) car ce sera le couple nom/valeur du bouton qui cliqué sera retourné, et seulement 1.

    Puis faire un document.form.submit() sur un bouton submit ne sert à rien, car ça fait doublon. Un click sur un bouton type submit déclenchera un évènement de type submit, donc soumettre le formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    print_r($_POST);
    ?>
    <form action="test.php" name="verif" method="post">
        <input type="submit" name="input_a" value="input_1" />
        <input type="submit" name="input_b" value="input_5" />
    </form>
    Un click sur input_a le print_r() affichera input_1 uniquement.
    Ou Un click sur input_b le print_r() affichera input_2 uniquement.

    Donc une simple vérification sur la valeur de la clé suffit pour savoir quel est le bouton qui a été cliqué.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if (isset($_POST['input_a'])) {
        // 1er bouton
    }
    else if (isset($_POST['input_b'])) {
        // 2ème bouton
    }
    ?>
    Aussi, si tu place le focus (placer le curseur) dans le formulaire et qu'on appui sur la touche "entrer" (donc sans cliquer) ce sera le 1er bouton qui sera pris en compte.


    Mais peut être faudrait il que tu fasse autrement.
    Au lieu de créer plusieurs boutons submit pour 1 seul formulaire, et bien créer plusieurs formulaires mais avec 1 seul bouton (1 pour chaque formulaire).

  7. #7
    Invité de passage
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Par défaut Plusieurs boutons submit
    Bonjour,

    Il s'agit de mes premiers pas en tant que participant à un forum, j'implore donc votre indulgence.

    Je cherchais également le moyen d'avoir plusieurs boutons de type submit sur une page de formulaire.

    Je suis arrivé par un détour à cette conversation qui ma foi m'a semblé une bonne alternative à ce que je recherchais, seulement comme tomguiss, la solution image dans un boutton ne me convenais guère.

    Apparemment lorsqu'on insère une image à la place d'un bouton submit, $_POST interprète cette dernière en terme de coordonnées "x" ou "y" par rapport au curseur de la souris.

    c'est pourquoi dans la page de récupération des données on doit spécifier "_x" pour notre cas ici (ou je présume "_y" si les boutons sont l'un au dessus de l'autre).

    voici donc en image le code de ma page de saisie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="processor.php" name="verif" method="post">
        <input type="image" src = "IMG/remove.png" name="input_a" value="input_1" />
        <input type="image" src = "IMG/delete.png" name="input_b" value="input_5" />
    </form>
    et celui de ma page de récupération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (isset($_POST['input_a_x'])) {
        echo'1er bouton';
    }
    else if (isset($_POST['input_b_x'])) {
        echo'2ème bouton';
    }
    ?>
    le code tourne bien chez moi

    peut-être je répond à côté de la plaque car après une relecture rapide je viens de voir que RunCodePhp à soumis l'idée
    Array
    (
    [input_a_x] => 10
    [input_a_y] => 4
    )
    .

    en espérant que ça serve à quelqu'un

    bonne continuation

    Filou

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/12/2013, 10h39
  2. [WD10] Test d'une fenêtre - Problème avec l'utilisation du bouton GO
    Par oumlike dans le forum WinDev
    Réponses: 10
    Dernier message: 14/03/2011, 18h54
  3. Problème avec les Boutons Image
    Par abdoing dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/06/2007, 11h35
  4. bouton image problème IE
    Par poussinphp dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/12/2005, 13h24
  5. bouton image
    Par furikuri dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 07/12/2004, 12h23

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