Comment passer un tableau en methode $_get

Bonjour,
voilà ; j'ai créé une case à cocher habitation sauf que s'il l'utilisateur clique dessus , il y a plusieurs indices qui seron concrenés la raison pour laquelle j'ai mis dans un tableau

  <?php
               $auto  = array("1","1000","1001","1002","1003","1004");


            ?>
            <h5>Police </h5>
     <?php         echo "Automobile <input type=\"checkbox\" name=\"police[]\" value=\"$auto[]\" checked=\"checked\" />";  ?>
             Divers <input type="checkbox" name="police[]" value="2" />
             Habitation <input type="checkbox" name="police[]" value="3" />
             Santée <input type="checkbox" name="police[]" value="4" />
              Civile <input type="checkbox" name="police[]" value="5" />



ans le fichier de recupération des paramètres :

// on recupère les choix
// on vautiliser join() on sépare par des virgules qui convertit tableau en chaine
// type de contrat
$contratype = join(',', $_GET['police']);



merci d'avance

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. 1 - remplace : echo "Automobile <input type=\"checkbox\" name=\"police[]\" value=\"$auto[]\" checked=\"checked\" />"; ?>

    par : echo 'Automobile <input type="checkbox" name="police[]" value="$auto[]" checked="checked" />'; ?>

    2 - $_GET['police'] te donne quoi ? vérifier avec echo $_GET['police'];

    sinon je pense que tu dois faire un test après :

    if ($_GET['police'] == "auto") {
    $auto = array("1","1000","1001","1002","1003","1004");
    $contratype = join(',', $auto);

    }
    You Are Welcome
    1. Salut ;
       echo  $_GET['police'];
      
      

      me donne array
      et quand je fais print_r($_GET);
      le resultat est le même et c'est bien array dans la police

      Array ( [police] => Array ( [0] => 1 ) [compagnie] => Array ( [0] => 1074 ) [etat] => 1 [ok] => Valider ) 
      
      


      sinon j'ai déjà pensé à ta deuxième solution

      if ($_GET['police'] == "auto") {
      $auto = array("1","1000","1001","1002","1003","1004");
      $contratype = join(',', $auto);
      
      } 
      
      

      sauf que $contratype devra contenir aussi celui un tableau des indices habitation si habitation et Auto sont cochés donc il faut concaténer les deux tableaux
      est ce possible
      $contratype = join (',',$auto.$habit)
      1. Je n'ai jamais eu à utiliser des checkbox qui ont le meme nom auparavant,
        donc
        d'abord je pense qu'il faut modifier le nom du checkbox habitation de police[] vers Habitation,

        Habitation <input type="checkbox" name="habitation" value="3" />

        Et par lasuite, vérifier s'elle est cochée,
        si oui :
        if (isset($_GET['habitation']) && $_GET['habitation'] == '3' )
        {
        $habitation = indices habitation ...
        $contratype = join(',', $habitation);
        }

        je ne sais si ca marche.
        1. le problème c'est que si les checkbox n'ont pas le même nom donc l'utilsateur ne pourra pas cocher qu'une seule case ; ce qui n'est pas le cas si on met police [].
          la situation ici c'est qu l'utilsateur pourra chosir en même temps Auto et habitation
          1. Plusieurs choix possible = Utiliser les checkbox
            sinon = utiliser les radiobutton
            :)
        2. mais dans ce code , j'arrive à connaître le choix de l'utilisateur (auto - habitation ou divers ) en mettant des cases à cocher à choix multiple
            Automobile <input type="checkbox" name="police[]" value="1" checked="checked" />;
                       Divers <input type="checkbox" name="police[]" value="2" />
                       Habitation <input type="checkbox" name="police[]" value="3" />
                       Santée <input type="checkbox" name="police[]" value="4" />
                        Civile <input type="checkbox" name="police[]" value="5" />
          
          


          sauf que le problème dans la requête , s'il clique sur Automobile par exemple
          la valeur dans le tableau police = 1 or Automobile c'est un nom globale je veux dire dans la table automobile
          mais il y a plusieurs cas de risque sur automobile , c'est ce que j'ai mis dans un tableau et tous les cas
             //Type Auto
                   case 1: case 1000: case 1001:case 1002: case 1003: case 1004:
          


          donc je voulais mettre çà dans un tableau :

          $automobile = array ( "1","1000", "1001","1002","1003", "1004");

          donc dans cette requête :
           $sql ="select NumPol,IDCabinet,Denomination,Adresse,Codeclient,Codeetatpolice,NumPolice,CodeCompagnie,Typedepolice from PoliceClientphp
          where Typedepolice IN($contratype) and CodeCompagnie IN ($compagnie)   and Num = Codeclient and Codeetatpolice= $etat
          group by CodeCompagnie,Codeetatpolice,IDCabinet,Denomination,Adresse,Codeclient,NumPolice,Typedepolice,NumPol ";
          
          


          et dans le code concerné

          Typedepolice IN($contratype)


          la valeur de $contratype vaut 1 (value de checkbox lié à automobile ) alors que il aurait dû être les valeurs $automobile = array ( "1","1000", "1001","1002","1003", "1004");

          peut -être la seule solution c'est de créer au lieu d'une case à cocher Automobile ; une liste déroulante à choix multiple contenant les risques liés à tout ces indices
          ( "1","1000", "1001","1002","1003", "1004");
          1. Salut ;

            en fait j'ai essayé de mettre çà :
              Automobile <input type="checkbox" name="police[]" 
                                            value="1,1000,1001,1002,1003,1004 " checked="checked" />;
                         Divers <input type="checkbox" name="police[]" value="2" />
                         Habitation <input type="checkbox" name="police[]" value="3" />
                         Santée <input type="checkbox" name="police[]" value="4" />
                          Civile <input type="checkbox" name="police[]" value="5" />
            
            

            et j'arrive à avoir les parametres comme il faut mais c'est au niveau des requêtes qui ne marchent pas

            Array ( [police] => Array ( [0] => 1,1000,1001,1002,1003,1004 ) [compagnie] => Array ( [0] => 1074 ) [etat] => 1 [ok] => Valider )
            type de contrat :1,1000,1001,1002,1003,1004
            la compagnie : 1074
            etat du constrat 1
            select NumPol,IDCabinet,Denomination,Adresse,Codeclient,Codeetatpolice,NumPolice,CodeCompagnie,Typedepolice from PoliceClientphp where Typedepolice IN(1,1000,1001,1002,1003,1004 ) and CodeCompagnie IN (1074) group by CodeCompagnie,Codeetatpolice,IDCabinet,Denomination,Adresse,Codeclient,NumPolice,Typedepolice,NumPol 
            
            


            je ne comprends plus ce qui ne marche pas