Comment passer un tableau en methode $_get
razily
Messages postés
285
Statut
Membre
-
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
ans le fichier de recupération des paramètres :
merci d'avance
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 - 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 -
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) -
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.
-
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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"); -
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