taint1
Messages postés5Date d'inscriptionmercredi 7 décembre 2005StatutMembreDernière intervention 5 février 2006
-
2 févr. 2006 à 14:25
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
2 févr. 2006 à 15:48
Bonjour à tous,
Je suis à la recherche d'aide pour la mise en place d'une checkbox. J'ai réussi a afficher les checkbox mais je ne trouve pas comment récupéré les valeurs en fonction des case cochées.
J'ai commencé le php il y a peu alors il est probable qu'il y ai de nombreuses coquilles dans mon programme.
J'espère que les informations ci dessous vont cvous permettre de comprendre ce que je recherche à faire.
Merci d'avance a toute personne essayant de m'aider.
Ma page activité+.php affiche cela:
informatique
<FORM action= activite.php method=post> reseaux
<FORM method="post" action="activite.php"> internet
<FORM method="post" action="activite.php"> telephonie
<FORM method="post" action="activite.php"> commercial
<FORM method="post" action="activite.php"> maintenance gros systemes
<FORM method="post" action="activite.php"> operateur radiocom
<FORM method="post" action="activite.php"> maintenance et gestion de materiel reseau ou telephonie de grande capacite
<FORM method="post" action="activite.php"> prestation de services
Mais je ne sait pas comment faire pour récupéré la valeur en face de la case coché quand j'effectue une recherche.
Si possible il faudrai que mon programme puisse traiter plusieurs case.
Activité+.php:
<?php
include('connexion.php');
$reponse = mysql_query("SELECT type FROM activite");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<form action="activite.php" method="post">
Activite.php:
<?php //debut instruction PHP
include('connexion.php'); //appel de la page php connexion permettant de se connecter et de selectionner la base de données
$rq="select F.numero_fiche, F.numero_entreprise, raison_sociale, code_postal, ville, annee, numero_cd, repertoire, titre_rapport, resume, type
from fiche F, entreprise E, activite A, lieu L
where F.numero_entreprise=E.numero_entreprise
and F.numero_fiche=L.numero_fiche
and L.numero_activite=A.numero_activite
and type like ".$_POST['case']."";
$reponse = mysql_query($rq); // Requête SQL
if (!$reponse) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
if($donnees){ //si une réponse est contenue dans des données, alors :
while ($donnees)
{
echo ' Fiche Numero : ' . $donnees[0].'' ;
echo ' Titre du rapport : ' . $donnees[8].'
';
echo ' Raison sociale de l entreprise est : ' . $donnees[2].' ' ;
echo ' Ville : ' . $donnees[4].' ' ;
echo ' Code postal : ' . $donnees[3].' ' ;
echo ' Année du stage : ' . $donnees[5].' ' ;
echo ' Activité : ' . $donnees[10].' ';
echo ' Le rapport de stage se trouve sur le cd ' . $donnees[6].'';
echo ' et son répertoire est ' . $donnees[7].' ';
echo ' Résumé :' . $donnees[9].' ';
echo ' <hr />';
$donnees =mysql_fetch_row($reponse);
}
}
else { //sinon, afficher le message suivant :
echo 'Aucun stage n\'a été effectué dans le département sélectionné !!!';
echo 'Veuillez sélectionner un autre département !';
}
?>
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 2 févr. 2006 à 15:48
Argh...le tableau était très bien case[], c'est la bonne méthode.
Et dans le cadre d'un affichage de données tirées d'une bdd, le plus simple est de mettre l'id de la ligne dans le tableau. Exemple :
<?php
$sQuery = mysql_query ('SELECT perso_id, perso_nom FROM personnages');
while ($aRow = mysql_fetch_assoc ($sQuery)) {
echo '',$aRow['perso_nom'];
}
?>
et tu récupères tous tes id pour les cases cochées dans le tableau $_POST['case'].
Par exemple : $_POST['case'][0] = 2 // 1ère case cochée, perso_id 2,
$_POST['case'][1] = 8 // 2de case cochée, perso_id 8
Ensuite, une fois le formulaire validé, seuls les cases cochées font parties de l'URL et leur valeur est "on".
Ainsi, si tu as 3 checkbox "case_1", "case_2" et "case_3" et que seule
"case_2" était cochée à la validation du formulaire, dans les
paramètres de l'URL, il n'y aura que "case_2"
Donc, dans ta seconde page, il faut que tu utilises les identifiants des cases
foreach( $cle, $valeur) in $_POST{ // Pour chaque variable contenu dans $_POST
if( substr( $cle, 0, 5) = "case_"){ // Si c'est une des checkbox
list( $a, $b) = explode( "_", $cle); //
dans $a, il y aura "case", dans $b, il y aura l'identifiant