Comment passer un tableau en methode $_get

Fermé
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 - 11 juin 2010 à 13:27
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 - 11 juin 2010 à 21:42
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



A voir également:

6 réponses

sapma Messages postés 168 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 7 juin 2011 5
Modifié par sapma le 11/06/2010 à 13:51
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
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 2
11 juin 2010 à 14:31
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
sapma Messages postés 168 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 7 juin 2011 5
11 juin 2010 à 16:08
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
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 2
11 juin 2010 à 18:35
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
sapma Messages postés 168 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 7 juin 2011 5
11 juin 2010 à 18:56
Plusieurs choix possible = Utiliser les checkbox
sinon = utiliser les radiobutton
:)
0

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

Posez votre question
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 2
11 juin 2010 à 19:57
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
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 2
11 juin 2010 à 21:42
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