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 :

2 Boutons dans 1 formulaire


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut 2 Boutons dans 1 formulaire
    Bonjour,

    Voilà mon problème, j'ai donc un formulaire avec 2 boutons un pour faire une enchère et l'autre our voir le détail des produits. Sur les deux j'ai besoin de faire un post pour récupérer ma variable. Est ce quelqu'un pourrait m'aider je galère.
    Voici mon code :
    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
    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
    56
    57
    58
    59
     
    <table width="652" border="0">
    <?
      // connexion à la base 
      $db = mysql_connect('sql', 'xxx', 'xxxx')  or die('Erreur de connexion '.mysql_error()); 
    ?>
      <tr bgcolor="#99FFFF"> 
      <td width="60%"><b>Référence du Matériel</b></td>
      <td width="5%">
          <div align="center"><b>Matériel</b></div>
        </td>
      <td width="20%">
          <div align="center"><b>Nom de l'acheteur</b></div>
        </td>
      <td width="10%"><div align="center"><b>Tapez votre nom</b></div></td>
      <td width="5%"><div align="center"><b>Tapez votre prix</b></div></td>
      <td width="5%"><div align="center"><b>Détail du produit</b></div></td>
      </tr>
    <?
    // sélection de la base      
      mysql_select_db('xxx',$db)  or die('Erreur de selection '.mysql_error());    
     
      $sql = "SELECT * FROM `enchere`"; 
     
      // on envoie la requête  
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
     
      // on fait une boucle qui va faire un tour pour chaque enregistrement  
      while($data = mysql_fetch_assoc($req))
        {
    ?>
      <form name="form" method="post" >       
      <tr bgcolor="#FFFF66">
          <td width="5%" height="53"> 
            <input type="text" name="id_materiel" size="10" value="<? echo $data[id_materiel];?>">
      </td>
          <td width="50%" height="53"> 
            <input type="text" name="nom_materiel" size="60" value="<? echo $data[nom_materiel];?>">
      </td>
          <td width="20%" height="53"> 
            <input type="text" name="nom_acheteur" value="<? echo $data[nom_acheteur];?>">
      </td>
          <td width="10%" height="53"> 
            <input type="text" name="prix" value="<? echo $data[prix];?>" maxlength="4" size="10">
      </td>
          <td width="10%" height="53">
    <input type="submit" name="encherir" value="Encherir" )>envoyer > 
      </td>
          <td width="10%" height="53">
    <input type="submit" name="detail" value="Détail">
      </td>
    </tr></form>
     
     
    <?  }    
    // on ferme la connexion à mysql  
    mysql_close();  
    ?>
    </table>
    Merci de votre aide

  2. #2
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    Sur les deux j'ai besoin de faire un post pour récupérer ma variable
    c'est pas très clair !?

    souhaite tu detecter quel bouton sera appuyé?
    sinon quel variable veux tu récupérer???

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 165
    Par défaut
    ce que tu veux c'est avoir la possiblité de déclencher 2 actions différentes à partir du même formulaire
    c'est çà ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    Je souhaite aller sur la page encherir.php en récupérant la variable $nom_materiel en appuyant sur le bouton SURENCHERIR.
    et aller sur la page detail_materiel en récupérant la variable $id_materiel en appuyant sur le bouton DETAIL.
    Cela marche quand j'ai qu'un seul bouton avec une action dans <form> mais pour deux boutons je bloque.
    J'espère que je suis assez clair.
    Merci

    OUI a MALKIE

  5. #5
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    un element bouton disposant d'un attribut name renverra une superglobal $_POST qui portera le nom que tu aura assigné comme attribut.

    Autrement dit si tu clique sur : encherir

    en retour tu aura une variable $_POST['encherir'] qui aura pour valeur TRUE

    donc tu peux très bien tester l'existence et le contenu de cette variable

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if( isset($_POST['encherir']) && $_POST['encherir'] )
    {
     
    //instruction...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    Je ne te suis pas, je ne suis pas un foudre de guerre en programmation, peux-tu me détailler ta solution s'il te plait.
    Merci

  7. #7
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    d'une part il te faut corriger ton code..

    $data[nom_materiel] ==> je ne suis pas sur que cela fonctionne très bien si tu veux mon avis. essaye plutôt $data['nom_materiel'] , c'est pareil pour toute tes variable tableau (une variable tableau est sous la forme $variable[] )

    enregistre l'attribut action dans ton élément <form>. met y une page générique qui traitera ton formulaire. quelque soit le bouton appuyé, ce sera toujours la même page qui sera lancé.

    C'est par contre cette page qui redirigera vers celle que tu désire, en fonction du bouton qui aura été cliqué!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 165
    Par défaut
    si tu commences je te conseille de refaire ta page etape par etape ... comme çà tu peux identifier si il y a une erreur
    pour le formulaire ce qui est possible c'est de donner le même nom aux 2 boutons :
    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
    15
    16
    17
    18
    19
    20
    21
    <form name="form" method="post" >       
      <tr bgcolor="#FFFF66">
          <td width="5%" height="53"> 
            <input type="text" name="id_materiel" size="10" value="<? echo $data[id_materiel];?>">
      </td>
          <td width="50%" height="53"> 
            <input type="text" name="nom_materiel" size="60" value="<? echo $data[nom_materiel];?>">
      </td>
          <td width="20%" height="53"> 
            <input type="text" name="nom_acheteur" value="<? echo $data[nom_acheteur];?>">
      </td>
          <td width="10%" height="53"> 
            <input type="text" name="prix" value="<? echo $data[prix];?>" maxlength="4" size="10">
      </td>
          <td width="10%" height="53">
    <input type="submit" name="bouton_action" value="Encherir" )>envoyer > 
      </td>
          <td width="10%" height="53">
    <input type="submit" name="bouton_action" value="Détail">
      </td>
    </tr></form>


    ensuite dans l'entete:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if( isset($_POST['bouton_action']) && $_POST['bouton_action'] )
    {
    if ($_POST['bouton_action']=="Encherir") 
    {
    echo "encherir";
    }
    if ($_POST['bouton_action']=="Détail") 
    {
    echo "Détail";
    }
    }

    ensuite tu fais un test de chacun des boutons et si çà marche tu commences à t'occuper de chacune des actions diffférentes ...
    bien sûr il y a d'autres méthodes plus rigoureuses mais si çà peut t'aider ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    OK super l'explication,
    je viens de trouver ce systeme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?
    if(isset($_POST['encherir']) AND $_POST['encherir']=="Surencherir")
    { 
      include('encherir.php');
    }
    elseif(isset($_POST['detail']) AND $_POST['detail']=="Détail")
    { 
      include('detail_materiel.php');
    }
    ?>
    dans une page appele choix_page.php

    ça marche bien mais encore plus dur puis-je faire appel pour ENCHERIR comme ci-dessus et faire appel à une popup style greybox pour DETAIL
    (j'ai tous ce qu'il faut pour la greybox)
    Merci

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    je viens de tester ce que tu m'as dit cela marche nikel cela me marque bien le bouton que j'ai cliqué, maintenant comment faire pour appeler un lien sur les pages que je souhaite ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 165
    Par défaut
    je ne comprends pas bien ce que tu veux

    si tu veux "aller sur une autre page" il faut inclure une redirection :

    header('Location: lapageoutuveuxaller.php);

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut
    Voila exaxtement ce que je souhaite arriver à faire :
    J'ai un site d'enchère asses simple avec une base de donnée Mysql.
    Je souhaite que la personne qui est intéressé par un matériel puisse soit :
    - mettre une enchère (page encherir.php)
    soit
    - voir le détail du matériel (photo) (page detail_materiel.php)
    mais là ou ça se complique c'est que je souhaite que le detail_matériel s'ouvre sur une popup avec la photo correspondante au matériel.

    Donc dans la solution que tu me donne j'ai besoin de trouver les differentes méthodes.
    Merci

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 165
    Par défaut
    Citation Envoyé par matsay81 Voir le message
    Voila exaxtement ce que je souhaite arriver à faire :
    J'ai un site d'enchère asses simple avec une base de donnée Mysql.
    Je souhaite que la personne qui est intéressé par un matériel puisse soit :
    - mettre une enchère (page encherir.php)
    çà devrait aller dans ton cas :
    header('Location: encherir.php);
    Citation Envoyé par matsay81 Voir le message
    soit
    - voir le détail du matériel (photo) (page detail_materiel.php)
    mais là ou ça se complique c'est que je souhaite que le detail_matériel s'ouvre sur une popup avec la photo correspondante au matériel.
    je te repond dès que j'ai un peu de temps ;-)

Discussions similaires

  1. deux boutons dans un formulaire
    Par vanou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/06/2006, 08h57
  2. deux boutons dans un formulaire
    Par vanou dans le forum ASP
    Réponses: 5
    Dernier message: 20/06/2006, 08h55
  3. Afficher / Masquer un bouton dans un formulaire
    Par Alpha31 dans le forum IHM
    Réponses: 10
    Dernier message: 30/05/2006, 12h08
  4. Plusieurs boutons dans un formulaire
    Par kcizth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/01/2006, 14h42
  5. Creation bouton dans un formulaire
    Par zizzoud dans le forum Access
    Réponses: 2
    Dernier message: 11/11/2005, 16h41

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