Comment passer un tableau en methode $_get

razily Messages postés 285 Statut Membre -  
razily Messages postés 285 Statut Membre -
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

  1. sapma Messages postés 174 Statut Membre 5
     
    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
    0
  2. razily Messages postés 285 Statut Membre 2
     
    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)
    0
  3. sapma Messages postés 174 Statut Membre 5
     
    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.
    0
  4. razily Messages postés 285 Statut Membre 2
     
    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
    0
    1. sapma Messages postés 174 Statut Membre 5
       
      Plusieurs choix possible = Utiliser les checkbox
      sinon = utiliser les radiobutton
      :)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. razily Messages postés 285 Statut Membre 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");
    0
  7. razily Messages postés 285 Statut Membre 2
     
    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
    0