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 :

Récupérer contenu d'un formulaire avec bouton radio


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 91
    Points : 36
    Points
    36
    Par défaut Récupérer contenu d'un formulaire avec bouton radio
    Bonjour,
    Je suis en train de préparer un script qui permet la réservation de places.
    Après avoir renseigné les lieux tous les éléments nécessaires (lieux de départ, d'arrivée, trajet etc.. une proposition est faite pour choisir la compagnie de transport et les heures disponibles.
    Et c'est là que je coince depuis quelques temps.
    Je voulais que le choix puisse se faire à l'aide d'un bouton radio dans la ligne de choix, mais je n'y arrive pas ! Mais cela est-il possible ?
    Voilà mon code qui est sensé faire la chose :
    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
     
     $req4=("SELECT * FROM horaires WHERE hub_dep='$route' and journe='$date_jour'");
     $reponse=mysql_query($req4);
     if (mysql_num_rows($reponse)>=1)
     {
     $n=0;
     // si une route existe, on va chercher les compagnies qui l'exploitent
     while ($lieu=mysql_fetch_array($reponse))
     {
      $rechlogo="select * from joueurs where id = '$lieu[id_com]'";
      $trouvlogo=mysql_query($rechlogo);
      $logos=mysql_fetch_array($trouvlogo);
      $comp=$logos['id'];
      $log1=trim($logos['logo']);
      $nom1=$logos['Nom'];
      $heure_d[$n]=$lieu['h_depart'];
      $heure_a[$n]=$lieu['h_arrivee'];
      echo "<tr>";
      echo "<td width='10%' align='center'>";
      //on implante un bouton radio pour chaque compagnie afin de faire un choix
      echo "<input type='hidden' name='choix[$n]' value='$comp'></input>";
      echo "<input type='hidden' name='choix[$n]' value='$nom1'></input>";
      echo "<input type='radio' name='choix[$n]' value='$route'";
      /*
      if (isset($_POST['choix'][$n]))
      {
      echo ('checked="ckecked"');
      }
      */
      echo ">";
      echo "</td>";
      echo "<td width='30%' align='left'>";
      echo "<img src='../image/'$log1' width='200' height='55' alt='' align='middle' />";
      echo "</td>";
      echo "<td width='30%' align='left'>";
      echo $heure_d[$n];
      echo "</td>";
      echo "<td width='30%' align='left'>";
      echo $heure_a[$n];
      echo "</td>";
      echo "</tr>";
      $n++;
     }//fin du while
     echo "<tr>";
     echo "<td colspan='4' align='center'>";
     echo"<input onclick='choix' type='submit' value='VALIDEZ'>";
     echo "</form>";
    Dans le $_POST toutes les données du tableau y sont, je ne voudrais avoir que celles de la ligne sélectionnée.
    Alors si quelqu’un a une proposition à me faire, j'en serai ravi
    Merci et bonne soirée.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<input type='radio' name='choix[$n]' value='$comp'></input>";
    Petite remarque: Une balise input se ferme directement, <input /> plutot que <input></input>Pour le bouton radio, ceci devrait fonctionner (a toi de bien l'implémenter dans ton algo, ca devrait aller :] )
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <input type='radio' name='compagnie' value='value_possible_1'>/label_choix_1 
    <br/>
    <input type='radio' name='compagnie' value='value_possible_2'/>label_choix_2 
    <br/>
    <input type='radio' name='compagnie' value='value_possible_3'/>label_choix_3 
    <br/>

    a quoi servent tes champs hidden?
    echo "<input type='hidden' name='choix[$n]' value='$comp'></input>";
    echo "<input type='hidden' name='choix[$n]' value='$nom1'></input>";
    je pense que tu as une erreur dans le chemin de ton image ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<img src='../image/'$log1' width='200' height='55' alt='' align='middle' />";
    on peut compter 3 '

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Bonjour et merci des réponses.
    Pour le </input> je les avais ajouté pensant que le problème pouvait venir de là

    Pour les <input type'hidden'>
    c'est parce que j'ai besoin des ces infos prises dans la bd pour la poursuite du programme.
    En effet, lors de la validation du choix de la compagnie, j'ai besoin de retenir :
    1 - le nom de la compagnie, les heures de départ et d'arrivée retenues pour établir ensuite les prix et la réservation.
    Donc si je comprends bien ta méthode, tu fais 3 boutons radio par choix possible.
    1 pour la compagnie, 1 pour l'heure de départ et 1 pour l'heure d'arrivée.
    J'avais espéré ne faire qu'un seul bouton pour les 3.
    Je vais donc tenter ta formule. mais il faut donc que je prévois la possibilité de choix multiple.

    En ce qui concerne le chemin de l'image, c'est pas grave, je l'avais modifié pour la copie du code.

    Je te tiens au courant dans la journée de la suite des évènements.

    encore merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Les inputs hidden: hidden ne veut pas dire non modifiable. si tu veux utiliser ces informations plus tard, alors il faut les récupérer lors du traitement de ton formulaire.

    Par exemple j'ai un formulaire qui demande de choisir d'envoyer un mail a une entreprise:
    j'affiche dans un radio bouton Google (id=201) Microsoft (id=245).
    Je ne transmet que l'id au traitement du formulaire.
    Puis lors du traitement, je récupère grace a l'id et ma base de donées les infos comme l'email du pdg, son prénom etc pour lui envoyer le mail. pas besoin de transmettre des informations en hidden.

    Pour ton algo, c'est assez simple et j'ai peur de te donner la réponse trop facilement si je post le code. mais a chaque passage dans ta boucle des compagnies: il faut afficher un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='radio' name='compagnie' value='value'>/label_choix_1

    une autre remarque brève pour améliorer ta qualité de code:
    Il faut essayer de nommer tes variables de manière compréhensible. $req4 je sais pas ce que c'est, surtout si j'en ai 10. préfère plutot $req_horaires par exemple.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 91
    Points : 36
    Points
    36
    Par défaut
    Re bonjour,
    Merci pour tes conseils très judicieux.
    Cela m'a permis d'avancer dans mon script et maintenant, j'arrive à aller plus loin.
    Je mets la code tel qu'il se présente maintenant et qui fonctionne.
    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
     
     $req_horaire=("SELECT * FROM horaires WHERE hub_dep='$route' and journe='$date_jour'");
    			 $reponse=mysql_query($req_horaire);
    			 if (mysql_num_rows($reponse)>=1)
    			 {
    			 $n=0;
    			 // si une route existe, on va chercher les compagnies qui l'exploitent
    			 while ($lieu=mysql_fetch_array($reponse))
    			 {
    			  $rechlogo="select * from joueurs where id = '$lieu[id_com]'";
    			  $trouvlogo=mysql_query($rechlogo);
    			  $logos=mysql_fetch_array($trouvlogo);
    			  $comp=$logos['id'];
    			  $log1=trim($logos['logo']);
    			  $nom1=$logos['Compagnie'];
    			  $heure_d[$n]=$lieu['h_depart'];
    			  $heure_a[$n]=$lieu['h_arrivee'];
    			  echo "<tr>";
    			  echo "<td width='30%' align='center'>";
    			  //on implante un bouton radio pour chaque compagnie afin de faire un choix
    			  echo "<input type='radio' name='compagnie' value='$nom1'";
    			  if (isset($_POST['compagnie']) && ($_POST['compagnie']==$nom1))
    			  {
    			  echo ('checked="ckecked"');
    			  }
    			  echo "><label><img src='../image/$log1' width='200' height='55' alt='' align='middle' /></label>";
    			  echo "</td>";
    			  echo "<td width='30%' align='left'>";
    			  echo $heure_d[$n];
    			  echo "</td>";
    			  echo "<td width='30%' align='left'>";
    			  echo $heure_a[$n];
    			  echo "</td>";
    			  echo "</tr>";
    			  $n++;
    			 }//fin du while
    			 echo "<tr>";
    			 echo "<td colspan='4' align='center'>";
    			 echo"<input onclick='compagnie' type='submit' value='VALIDEZ'>";
    			 echo "</form>";
    Je ne mets pas de suite la mention "résolu" car je vais m'attaquer au cas de trajets aller-retour.
    Si j'ai quelques soucis, je reviendrai demander conseil, si j'y arrive, je viendrai alors mettre le "résolu "
    Encore merci.

  6. #6
    Membre actif

    Inscrit en
    Octobre 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 168
    Points : 241
    Points
    241
    Par défaut chkb
    Bonjour,

    Cette classe peut être t 'aidera : http://php.developpez.com/telecharge...mulaire-html-5

Discussions similaires

  1. [Forum] Formulaire de contact avec boutons radio
    Par Louffeman dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 19/06/2014, 13h29
  2. Formulaire avec boutons radio->multi-choix
    Par pitu69 dans le forum MkFramework
    Réponses: 13
    Dernier message: 06/07/2013, 17h35
  3. Modification formulaire avec bouton radio
    Par Mister X dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/12/2012, 22h03
  4. Problème formulaire avec bouton Radio
    Par SwatAgent dans le forum ASP
    Réponses: 1
    Dernier message: 23/10/2010, 16h35
  5. Formulaire avec bouton radio + onclick
    Par iv3soldat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 04/12/2007, 19h30

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