Checkbox affiche une valeur dans un champ text

Résolu
rodlake Messages postés 13 Date d'inscription lundi 27 février 2012 Statut Membre Dernière intervention 8 mai 2012 - 28 févr. 2012 à 20:34
rodlake Messages postés 13 Date d'inscription lundi 27 février 2012 Statut Membre Dernière intervention 8 mai 2012 - 1 mars 2012 à 16:47
Bonjour
Je suis débutant en PHP et j'essaie de faire un formulaire d'évaluation. Le formulaire aura plusieurs questions sous ce format:

Question 1 oui non n/a et a la fin un textbox.

Lorsque le checkbox «oui» est sélectionné j'aimerais qu'il affiche une valeur dans le textbox et même chose pour les autre checbox.

Voici ce que j'ai fait jusqu'ici mais malheureusement je ne suis pas capable de faire affiche la valeur dans le textbox.

Je vous remercie a l'avance pour votre aide

<?php
if (isset($_POST['mon_champ'])) {
    echo "Vous avez choisi :";
    for ($i 0, $c count($_POST['mon_champ']); $i < $c; $i++) {
        echo "
 " . $_POST['mon_champ'][$i] . " ";
    }
}
 
// Renvoie vrai si $option fait partie du résultat
function est_selectionne($option) {
    if (!isset($_POST['mon_champ'])) {
            return FALSE;
    }
    for ($i  0, $c count($_POST['mon_champ']); $i < $c; $i++) {
        if ($_POST['mon_champ'][$i] == $option) {
            return TRUE;
        }
    }
    return FALSE;
}
?>



<form method="POST">
  QUESTION 1     />oui
       />non
       />N/A
    <?php if(est_selectionne("Option 4")) { echo 'checked'; } ?>/>
    


</form>

6 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
29 févr. 2012 à 23:19
Salut,

Je me suis permis de reprendre ton code, tu devrais l'étudier en détail, et si tu as des questions n'hésites surtout pas à les poser :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>test</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  </head>
  
    

<?php

$lst = array();

if (!empty($_POST['mon_champ']['choice']) && is_array($_POST['mon_champ']['choice']))
  {
    foreach ($_POST['mon_champ']['choice'] as $val)
      {
$lst[] = $val;
      }
  }
if (!empty($_POST['mon_champ']['txt']))
  $lst[] = $_POST['mon_champ']['txt'];

if (!empty($lst))
  {
    echo 'Vous avez choisi :

';
    foreach ($lst as $val)
      {
echo '<li>' . $val . '</li>';
      }
    echo '';
  }
?>
    


    <form method="post" action="">
      <fieldset>
<legend>Question 1</legend>
<?php

$val_lst = array(0, 10, 20, 30);
foreach ($val_lst as $val)
{
  $id = uniqid('q1_');

  $chk = '';
  if (!empty($_POST['mon_champ']['choice']) && in_array($val, $_POST['mon_champ']['choice']))
    $chk = ' checked="checked"';

  echo '<label for="', $id, '">', $val, '</label>
';
}

?>
" />
      </fieldset>
      


      

    </form>
  
</html>
3
rodlake Messages postés 13 Date d'inscription lundi 27 février 2012 Statut Membre Dernière intervention 8 mai 2012
28 févr. 2012 à 23:05
J'ai aussi oublié de mentionner que l'utiloisateur soit aussi capable d'entre une valeur dans la textbox.

merci
0
rodlake Messages postés 13 Date d'inscription lundi 27 février 2012 Statut Membre Dernière intervention 8 mai 2012
1 mars 2012 à 00:40
Merci TychoBrahe
Je vais regarder ce que tu a fais et je te reviens.
0
rodlake Messages postés 13 Date d'inscription lundi 27 février 2012 Statut Membre Dernière intervention 8 mai 2012
1 mars 2012 à 15:12
Bonjour Tychobrahe

J'ai regardé et si je comprends plutot que d,avoir une valeur pour chaque checkbox tu as mis tout ca dans un array.
J'ai poursuivi mes recherches et il semble que ce que je désire faire relève plutôt du Javascript. Merci pour le temps que tu as pris et je vais conserver ton bout de code précieusement cela va surement m,être utile pour le reste de mon projet. Surtout voir la structure de ton code.
Encore merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
1 mars 2012 à 16:24
Salut,

Juste pour préciser que, si j'ai utilisé un checkbox pour reprendre ton code, dans le cas d'un choix unique (oui, non, n/a), tu devrais plutôt utiliser un bouton radio. En fait je n'avais pas trop prêté attention au texte que tu as mis avant ton code, j'en suis désolé. Je te confirme que, pour avoir ton champ texte uniquement lorsque "oui" est coché, tu dois utiliser du javascript (très simple). J'insisterais sur le fait que, même si ce champ ne s'affiche que si "oui" est sélectionné, tu ne peux pas garantir qu'il ne soit pas remplis quand même si un autre choix est sélectionné. Tu dois donc vérifier ceci côté serveur également.

Bref, n'hésites pas à poster ce que tu as modifié, même si c'est juste pour voir comment il est possible d'améliorer.
0
rodlake Messages postés 13 Date d'inscription lundi 27 février 2012 Statut Membre Dernière intervention 8 mai 2012
1 mars 2012 à 16:47
Salut

Je me suis trouvé un bout de code JS que j'ai un peu modifié. Il répond à mes besoins mais comme tu le dis il est possible d'activer un bouton et inscrire autre chose dans le textbox....pas fameux. De plus je suis incapable de récupérer la valeur du textbox....le passage de JS à PHP m'embête.
J'ai posté sur le forum JS voici le liens Comment recupere valeur text box.
Encore merci pour ton aide.
0
Rejoignez-nous