Case à cocher php (limiter les choix)

Résolu
Bonjour,

Je suis actuellement en train de coder un formulaire en php dans lequel on y trouve des cases à cocher.

J'aimerais savoir comment limiter le nombre de choix de réponse. Par exemple si l'utilisateur coche plus d'une case, un message d'erreur s'affiche.

Voici un bout de code :

<p>Choisir</p>
<p>1 <input type="checkbox" name="reponse[]" value="1">
2 <input type="checkbox" name="reponse[]" value="2">
3 <input type="checkbox" name="reponse[]" value="3"></p>

<input type="submit" value="valider" name="ok"><br/>

<?php
	if (isset($_POST['ok']))
	{
                //variable de message à vide
		$msg = '';
		
		if(isset($_POST['reponse']))
		{
			echo '<p>Votre choix : </p>';
			foreach ($_POST['reponse'] as $choix)
			{
				echo $choix.'<br/>';
			}
		}
		else
		{
		 echo 'Veuillez faire un choix';
		}
	}
?>


Merci de bien vouloir m'aider.

Kat999.

2 réponses

  1. Bonjour,

    CITE : si l'utilisateur coche plus d'une case...

    ya pas besoin d'un code javascript. Suffit d'utiliser des boutons radio:

    <form method="POST" action="index.php">
    1 <input type="radio" name="reponse" value="1">
    2 <input type="radio" name="reponse" value="2">
    3 <input type="radio" name="reponse" value="3"></p>

    <input type="submit" value="valider" name="ok"><br/>
    </form>

    A+
    1. Bonjour,

      Oui, les boutons radios sont utiles pour un choix unique, mais j'aurais dû préciser dans mon message que je souhaitais limiter le nombre de case à cocher à 2 choix.

      Merci quand même.
    2. le problème pas encore resole. ??
    3. Et ceci alors?

      <form method="POST" action="index.php">
      1 <input type="checkbox" name="reponse[]" value="1">
      2 <input type="checkbox" name="reponse[]" value="2">
      3 <input type="checkbox" name="reponse[]" value="3"></p>

      <input type="submit" value="valider" name="ok"><br/>
      </form>

      <?php
      if (isset($_POST['ok'] && count($_POST[reponse]<=2))) {
      echo ("la nombre est ".count($_POST['reponse']));

      if(isset($_POST['reponse']))
      {
      echo '<p>Votre choix : </p>';
      foreach ($_POST['reponse'] as $choix)
      {
      echo $choix.'<br/>';
      }
      }
      else
      {
      echo 'Veuillez faire un choix';
      }
      }
      ?>
    4. Merci merci !

      Il était résolu mais j'ai oublié de clore le sujet.
      Merci encore !

      @ la prochaine ! ;)

      Kat.999
    5. J'aurais encore une petite question mais cette fois ci en rapport avec les boutons radios. Quand je ne fais aucun choix et que je valide le formulaire, j'ai ce message d'erreur "Undefined index".

      Voici mon code :

      <p><form method="POST" action="">
      1 <input type="radio" name="reponse" value="1">
      2 <input type="radio" name="reponse" value="2">
      3 <input type="radio" name="reponse" value="3"></p>
      
      <input type="submit" value="valider" name="ok"><br/>
      </form> 
      
      <?php
      	if (isset($_POST['ok']))
      	{
      		$reponse = $_POST["reponse"];
      		
      		if(empty($reponse))
      			echo 'Faites un choix';
      		else
      			echo 'Votre choix est : '.$reponse;
      	}
      ?>
      


      Merci d'avance !

      Kata ;)
  2. bonjour;

    <html>
    <body>
    <p>Choisir</p>
    <p>
    <form method="POST" action="index.php">
    1 <input type="checkbox" name="reponse[]" value="1">
    2 <input type="checkbox" name="reponse[]" value="2">
    3 <input type="checkbox" name="reponse[]" value="3"></p>
    
    <input type="submit" value="valider" name="ok"><br/>
    </form>
    
    <?php
    
    	if (isset($_POST['ok']))
    	{
                    //variable de message à vide
    		$msg = '';
    		
    echo ("la nombre est ".count($_POST['reponse']));
    		
    		if(isset($_POST['reponse']))
    		{
    			echo '<p>Votre choix : </p>';
    			foreach ($_POST['reponse'] as $choix)
    			{
    				echo $choix.'<br/>';
    			}
    		}
    		else
    		{
    		 echo 'Veuillez faire un choix';
    		}
    	}
    ?>
    </body>
    </html>
    1. Oooh merci ! Quand je pense que j'étais en train de me prendre la tête avec des boucles !
      Mais est-ce que ce code n'est pas trop ancien ? Est-il encore utilisé ?

      Merci encore !
    2. code ancien ? j'ai pas comprit ?
    3. Je me demandais si COUNT était encore utilisé, car il s'agit d'un nouveau code pour moi.