Recherche avec checkbox

Fermé
Jérémy - Modifié par Jérémy le 29/06/2010 à 08:29
 Jérémy - 1 juil. 2010 à 08:42
Bonjour à tous,

Celà fait maintenant pas mal de temps que cherche à faire une recherche filtré avec des checkbox... Dans ma consultation j'ai mi en place une recherche filtée avec des liste déroulante qui marche très bien! voici le code:

Code formulaire avec deux critère de selection en liste déroulante! (page : filtre_multi.php)

<form id="form1" name="form1" method="post" action="<?php echo 'Accueil'.$_COOKIE['qui'].'.php?centre=include/res_filtre_multi.php' ?>">  
<input name="page" type="hidden" value="1" />  

<!-- Nature / Origine du signalement -->  
<tr>  
<td>  
          
        <div align="right" id="lib_origine" style="display:block">  
          Nature / Origine du signalement  
        <input type="checkbox" name="Gpe_filtre" value="origine"    onclick='affiche               (this,"origine");enlever(this,"lib_numero");'/>  
          </label>  
        </div></td>  
  <td>  
  <div id="origine" style="display:none">    
  <select id="fsq_origine" name="fsq_origine"  >  
  <?php  
   $My_SQL = "SELECT distinct fsq_origine ";  
   $My_SQL .= "FROM fsq order by fsq_origine asc ";  
   chargelistes($My_SQL);   
  ?>    
         </select>  
  </div>   </td>  
    </tr>  

 <!-- pilote du processus -->  

    <tr>  
      <td><label>  
          
        <div align="right" id="lib_pilote" style="display:block">  
            
        Pilote du processus  
          <input type="checkbox" name="Gpe_filtre" value="pilote" onclick='affiche(this,"pilote");enlever(this,"lib_numero");' />  
        </div>  
      </label></td>  
   <td>  
    <div id="pilote" style="display:none">  
  <select name='fsq_pilote' >  
     <?php  
   $My_SQL = "SELECT distinct fsq_pilote ";  
   $My_SQL .= "FROM fsq order by fsq_pilote asc ";  
   chargelistes($My_SQL);  
   ?>  
  </select>   
  </div>   </td>   
    </tr>  
         <!--     FIN CRITERE DE SELECTION  -->  
 <tr><td colspan="2" align="center"><input name="btn_valider" type="submit" value='Rechercher' /></td></tr>  
  </table>  
    
</form>  



Code de la requete recherche : (page :res_filtre_multi.php)

<?php  
$fields = array('fsq_id', 'fsq_origine', 'fsq_pilote', 'fsq_resp_meo', 'fsq_etat', 'fsq_date_rq', 'fsq_date_dd', 'fsq_type_proc', 'fsq_date_cur' ) ; // Champs <form>/BdD   
$query = 'SELECT * FROM fsq WHERE 1 = 1' ;   
foreach ($fields AS $field ) {   
    IF ( isset($_POST[$field]) && $_POST[$field] !== '' ) { // IGNORE les champs vides   
         $query .= " AND $field = '{$_POST[$field]}'" ;   
    }   
}  
....?>  


Voilà, je rappele que la recherche marche très bien avec les listes déroulantes. Mais il faut que je rajoute 2 critères de selections avec des checkbox.
désoler pour la présentation du code .. En vous remerciant d'avance ^^'
A voir également:

3 réponses

PoZiF Messages postés 6 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010
Modifié par PoZiF le 29/06/2010 à 09:39
A quoi correspond la fonction chargelistes() ? Car pour une une liste déroulante le code est le suivant (entre des balises form)

<SELECT name="nom" size="1"> 
<OPTION value="1">1</OPTION> 
<OPTION value="2">2</OPTION> 
</SELECT>


Sinon pour les Buttons Radio, ils ont tout les deux les mêmes noms, donc seulement 1 des 2 peut être coché, donc il suffit de récupérer ça valeur
 $critere = $_POST['Gpe_filtre'];


Il ne te reste plus que à faire ta requête SQL en sélectionnant en utilisant
WHERE critere = '$critere'


Sinon tu as une erreur dans ton 2ème code (souligne et en gras) :
IF ( isset($_POST[$field]) && $_POST[$field] !== '' )
0
Merci pour ta réponse!
La fonction chargeliste permet de charger les valeurs de ma table et ainsi afficher les différentes valeurs.
En ce qui concerne le code pour la liste deroulante j'ai toujours fait comme sa.^^
Ensuite, le code de la checkbox que tu vois dans mon code permet d'afficher une liste déroulante !^^
C'est assez dure à expliquer. Je voudrais que lorsque que j'ai coché la case et ensuite cliquer sur le bouton 'recherche' il me recherche le nouveau critere mis en place j'avais essayé comme sa :
    </tr>	 <!--Traitement de fiche Curative -->
      <tr>
      <td width="31%" ><label>
        
        <div align="right" id="lib_cur" style="display:block">
          Traitement de fiche Curative
          <input name="fsq_date_cur" type="checkbox" value="cur" onclick='affiche(this,"cur");enlever(this,"lib_numero");'/>
        </div>
    </tr>

'fsq_date_cur' etant une valeur de ma table 'fsq'.
Je vais essayé avec ce que tu m'a mis mais le probleme c'est que je ne vois pas dans quelle page faire la requete!(filtre_multi ou res_filtre_multi)?
0
PoZiF Messages postés 6 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010
29 juin 2010 à 10:36
Tu te compliques la vie avec ton organisation. Ça peut tenir en une page , et c'est plus facile.

- Tu as tes 2 listes déroulantes et ton groupe de checkbox pouvant avoir 2 valeurs, le tout dans une <form method="post">...</form>
- Tu chopes les valeurs de tes listes déroulantes et de tes checkbox.
- Tu exécutes ta requêtes pour choper les éléments correspondant.
- Et là tu affiches ce que ta requête à renvoyer, et ceux, sur la même page.

Là tu auras belle et bien une recherche filtrée. Au pire envoie moi tes fichiers et ta table sur l'adresse mail que je t'ai filé sur FB.
0
Mets le probleme c'est que je dois faire une amélioration d'un logiciel et y'a certain bou de code qui été mis en place comme sa...tu veux que je te passe le code entier des deux page ? je te les passe sur le site xD: tiens cadeau!

<?php require ('qualite.inc'); ?>  
<span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>Sélectionner un critère  pour affiner votre choix de consultation : </span><br/><br/><br/>  
<form id="form1" name="form1" method="post" action="<?php echo 'Accueil'.$_COOKIE['qui'].'.php?centre=include/res_filtre_multi.php' ?>">  
<input name="page" type="hidden" value="1" />  
  <table width="80%" align="center" >  
    <!-- DEBUT CRITERE DE SELECTION -->  
  <!-- N°FSQ -->  
      <tr>  
      <td width="31%" ><label>  
          
        <div align="right" id="lib_numero" style="display:block">  
          Numéro Fiche constat  
          <input name="Gpe_filtre" type="checkbox" value="numero" onclick='affiche(this,"numero");enlever(this,"lib_origine");enlever(this,"lib_theme");enlever(this,"lib_pilote");enlever(this,"lib_plan");enlever(this,"lib_etat");enlever(this,"lib_création");enlever(this,"lib_prise_pilote");enlever(this,"lib_cura")'/>  
        </div>  
      </label></td>  
  <td width="69%" >  
   <div id="numero" style="display:none">  
        <input name="fsq_id" type="text" size="15" />  
   </div>   </td>  
    </tr>  
<!-- Nature / Origine du signalement -->  
    <tr>  
      <td>  
          
        <div align="right" id="lib_origine" style="display:block">  
          Nature / Origine du signalement  
          <input type="checkbox" name="Gpe_filtre" value="origine" onclick='affiche(this,"origine");enlever(this,"lib_numero");'/>  
          </label>  
        </div></td>  
  <td>  
  <div id="origine" style="display:none">    
  <select id="fsq_origine" name="fsq_origine"  >  
  <?php  
   $My_SQL = "SELECT distinct fsq_origine ";  
   $My_SQL .= "FROM fsq order by fsq_origine asc ";  
   chargelistes($My_SQL);   
  ?>    
         </select>  
  </div>   </td>  
    </tr>  
 <!-- pilote du processus -->  
    <tr>  
      <td><label>  
          
        <div align="right" id="lib_pilote" style="display:block">  
            
        Pilote du processus  
          <input type="checkbox" name="Gpe_filtre" value="pilote" onclick='affiche(this,"pilote");enlever(this,"lib_numero");' />  
        </div>  
      </label></td>  
   <td>  
    <div id="pilote" style="display:none">  
  <select name='fsq_pilote' >  
     <?php  
   $My_SQL = "SELECT distinct fsq_pilote ";  
   $My_SQL .= "FROM fsq order by fsq_pilote asc ";  
   chargelistes($My_SQL);  
   ?>  
  </select>   
  </div>   </td>   
    </tr>  
  <!-- Responsable plan d'action -->  
    <tr>  
      <td><label>  
          
        <div align="right" id="lib_plan" style="display:block">  
          Responsable plan d'action  
          <input type="checkbox" name="Gpe_filtre" value="responsable" onclick='affiche(this,"plan");enlever(this,"lib_numero");'/>  
        </div>  
      </label></td>  
  <td>  
  <div id="plan" style="display:none">    
  <!-- <?php RetourneListeUtilisateur() ?> -->  
  <select id="fsq_resp_meo" name="fsq_resp_meo" >  
    <?php  
   $My_SQL = "SELECT distinct fsq_resp_meo ";  
   $My_SQL .= "FROM fsq WHERE fsq_resp_meo IS NOT NULL AND fsq_resp_meo <> '' order by fsq_resp_meo asc ";  
   chargelistes($My_SQL);  
  ?>  
  </select>  
  </div>  </td>  
    </tr>  
  <!-- Etat FSQ -->  
    <tr>  
      <td><label>  
          
        <div align="right" id="lib_etat" style="display:block">  
          Etat FSQ  
          <input type="checkbox" name="Gpe_filtre" value="etat" onclick='affiche(this,"etat");enlever(this,"lib_numero");' />  
        </div>  
      </label></td>  
  <td>  
   <div id="etat" style="display:none">  
   <select name="fsq_etat">  
   <?php  
   $mon_select = "<option value =''> Selectionner ...</option>";  
   $My_SQL = "SELECT distinct fsq_etat ";  
   $My_SQL .= "FROM fsq order by fsq_etat asc";  
   chargelistes($My_SQL);  
   ?>  
   </select>  
   </div>  </td>  
    </tr>  
 <!-- Theme de la fiche -->  
 <tr>  
      <td><label>  
          
        <div align="right" id="lib_theme" style="display:block">  
          Thème de la fiche  
          <input type="checkbox" name="Gpe_filtre" value="theme" onclick='affiche(this,"theme");enlever(this,"lib_numero");' />  
        </div>  
      </label></td>  
  <td>  
   <div id="theme" style="display:none">  
   <select name="fsq_type_proc">  
   <?php  
   $mon_select = "<option value =''> Selectionner ...</option>";  
   $My_SQL = "SELECT distinct fsq_type_proc ";  
   $My_SQL .= "FROM fsq order by fsq_type_proc asc";  
   chargelistes($My_SQL);  
   ?>  
   </select>  
   </div>  </td>  
    </tr>  
 <!-- Date prise en charge Pilote -->  
  <tr>  
      <td><label>  
          
        <div align="right" id="lib_prise_pilote" style="display:block">  
         Date de prise en charge de la fiche (Pilote)  
          <input type="checkbox" name="Gpe_filtre" value="prise_pilote" onclick='affiche(this,"prise_pilote");enlever(this,"lib_numero");' />  
        </div>  
      </label></td>  
  <td>  
   <div id="prise_pilote" style="display:none">  
   <select name="fsq_date_rq">  
   <?php  
   $mon_select = "<option value =''> Selectionner ...</option>";  
   $My_SQL = "SELECT distinct fsq_date_rq ";  
   $My_SQL .= "FROM fsq order by fsq_date_rq asc";  
   chargelistes($My_SQL);  
   ?>  
   </select>  
   </div>  </td>  
    </tr>  
 <!-- Date création de la fiche -->  
  <tr>  
      <td><label>  
          
        <div align="right" id="lib_création" style="display:block">  
         Date de création de la fiche  
          <input type="checkbox" name="Gpe_filtre" value="création" onclick='affiche(this,"création");enlever(this,"lib_numero");' />  
        </div>  
      </label></td>  
  <td>  
   <div id="création" style="display:none">  
   <select name="fsq_date_dd">  
   <?php  
   $mon_select = "<option value =''> Selectionner ...</option>";  
   $My_SQL = "SELECT distinct fsq_date_dd ";  
   $My_SQL .= "FROM fsq order by fsq_date_dd asc";  
   chargelistes($My_SQL);  
   ?>  
   </select>  
   </div>  </td>  
    </tr>  
    </tr>  <!--Traitement de fiche Curative --> (FILTRE A MODIFIER AVEC UNE CHECKBOX) 
   <!-- (valeur de la table correspondante 'fsq_date_cur') -->
      <tr>  
      <td width="31%" ><label>  
          
        <div align="right" id="lib_cur" style="display:block">  
          Traitement de fiche Curative  
          <input name="fsq_date_cur" type="checkbox" value="cur" onclick='affiche(this,"cur");enlever(this,"lib_numero");'/>  
        </div>  
    </tr>  
    </tr>  <!--Traitement par plan d'action -->  (FILTRE A MODIFIER AVEC UNE CHECKBOX) 
   <!-- (valeur de la table correspondante 'fsq_amelioration_pilote')-->
   <tr>  
      <td><label>  
          
        <div align="right" id="lib_act" style="display:block">  
         Fiche traité par plan d'action  
          <input type="checkbox" name="Gpe_filtre" value="act" onclick='affiche(this,"act");enlever(this,"lib_numero");' />  
        </div>  
      </label></td>  
  <td>  
   <div id="act" style="display:none">  
   <select name="fsq_amelioration_pilote">  
   <?php  
   $mon_select = "<option value =''> Selectionner ...</option>";  
   $My_SQL = "SELECT distinct fsq_amelioration_pilote ";  
   $My_SQL .= "FROM fsq order by fsq_amelioration_pilote asc";  
   chargelistes($My_SQL);  
   ?>  
   </select>  
   </div>  </td>  
    </tr>  
         <!--     FIN CRITERE DE SELECTION  -->  
 <tr><td colspan="2" align="center"><input name="btn_valider" type="submit" value='Rechercher' /></td></tr>  
  </table>  
    
</form>  
sa c'est la page 'filtre_multi.php' (contient tout les criteres de selection)
ensuite je vais te passer la page res_filtre multi (contient le tableau avec la liste des fiche et autre info xD)
Le probleme comme tu le vois y'a un <?php require ('qualite.inc'); ?> =P tu me dira si tu en a besoins .(je pense que oui)
sinon voila ma table SQL 'fsq'
-- phpMyAdmin SQL Dump  
-- version 2.10.1  
-- https://www.phpmyadmin.net/  
--   
-- Serveur: localhost  
-- Généré le : Mar 12 Décembre 2008  
-- Version du serveur: 5.0.45  
-- Version de PHP: 5.2.5  

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";  

--   
-- Base de données: 'qualite'  
--   

-- --------------------------------------------------------  

--   
-- Structure de la table 'fsq'  
--   

DROP TABLE IF EXISTS fsq;  
CREATE TABLE IF NOT EXISTS fsq (  
  fsq_id mediumint(4) NOT NULL auto_increment,  
  fsq_etat varchar(10) NOT NULL,  
  fsq_nom varchar(40) NOT NULL,  
  fsq_service varchar(80) default NULL,  
  fsq_phone varchar(14) default NULL,  
  fsq_mail_dde varchar(150) default NULL,  
  fsq_date_dd date default NULL,  
  fsq_origine varchar(50) default NULL,  
  fsq_processus varchar(250) default NULL,  
  fsq_type_proc varchar(50) default NULL,  
  fsq_pilote varchar(40) default NULL,  
  fsq_dysfonctionnement mediumtext,  
  fsq_consequence mediumtext,  
  fsq_action_realisee mediumtext,  
  fsq_date_cur date default NULL COMMENT 'date de l''action immédiate realisee',  
  fsq_date_rq date NOT NULL COMMENT 'date d''acceptation ou de refus ',  
  fsq_com_rq mediumtext,  
  fsq_amelioration mediumtext,  
  fsq_typ_cause varchar(30) default NULL COMMENT 'typologie des causes',  
  fsq_analys_pilote mediumtext,  
  fsq_sans_suite char(1) default '0',  
  fsq_com_ss mediumtext,  
  fsq_amelioration_pilote mediumtext,  
  fsq_nature_amelioration varchar(30) default NULL,  
  fsq_resp_meo varchar(40) default NULL,  
  fsq_date_avisee date default NULL,  
  fsq_date_fin_prev date default NULL,  
  fsq_date_fin_reelle date default NULL,  
  fsq_mesure_impact mediumtext,  
  fsq_action_efficace varchar(3) default NULL,  
  fsq_mesure_efficacite mediumtext,  
  fsq_date_fin_eval date default NULL,  
  fsq_mesure_new smallint(6) default NULL,  
  fsq_autre_ttt mediumtext,  
  fsq_date_cloture date default NULL,  
  PRIMARY KEY  (fsq_id)  
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;  


edit: ups j'ai oublié la page avec le tableau des valeur lister et la requete!
c'est la page (res_filtre_multi.php) :
logiquement tu n'as pas besoins de la modifier j'ai déja fait appel au valeur de la table dans le array!.
<?php
header('pragma:no-cache');
setlocale(LC_TIME, "fr");
require ('class.pagination.php');
require ('qualite.inc');
$action = 'Accueil'.$_COOKIE['qui'].'.php';
$login = $_COOKIE['qui'];
//print_r ($action);
$var = strtoupper(addslashes($_COOKIE['nom']));
$fields = array('fsq_id', 'fsq_origine', 'fsq_pilote', 'fsq_resp_meo', 'fsq_etat', 'fsq_date_rq', 'fsq_date_dd', 'fsq_type_proc', 'fsq_date_cur','fsq_amelioration_pilote' ) ; // Champs <form>/BdD //
$query = 'SELECT * FROM fsq WHERE 1 = 1' ; 
foreach ($fields AS $field ) { 
   	IF ( isset($_POST[$field]) && $_POST[$field] !== '' ) { // IGNORE les champs vides 
        	$query .= " AND $field = '{$_POST[$field]}'" ; 
   	} 
} 			
																						
$centre = "consultation.php";
$chemin = " Consultation FSQ";
$titrepage = "Consultation FSQ";
$titrecentre = "Liste des fiches"; 	
$rqetat = 11;	

$LO_Link = mysql_connect(Def_Login, Def_User, Def_PW);
mysql_select_db(Def_Base, $LO_Link);

$result = mysql_query($query, $LO_Link) or die(mysql_error());
$total = mysql_num_rows($result);

?>

<?php 
if ($total != 0)
{
		if($login =='Pilote')//Si on est connecté en tant que pilote/RQ alors on peut supprimer
		{
			//echo "vous êtes connecté en tant que :"; print_r($_COOKIE['qui']);
			if (isset($_GET['n'])) // Si on demande de supprimer une fsq
			{
				// Alors on supprime la fsq correspondante
				// On protège la variable "fsq_id" pour éviter une faille SQL
				$_GET['n'] = addslashes($_GET['n']);
				mysql_query('DELETE FROM fsq WHERE fsq_id=\'' . $_GET['n'] . '\'');
			}
		echo " <table >
		<tr>
		<td colspan='4'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>$titrecentre</span>	</td>
		</tr>
		<tr>
		<td>&nbsp;</td>
		</tr>
		<tr >
		<td>&nbsp;</td>	
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Fiche N°</span></td>
			<td></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de création</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de prise en charge</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Pilote</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Origine</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Thème de la fiche</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Visualiser</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Supprimer</span></td>
	  <td></td>
	</tr>    ";
			 while ($row = mysql_fetch_assoc($result) )
			{
				//print_r($row);
				echo "<form name='fsq' action='".$action."' method='get' enctype='multipart/form-data' >"; 
				echo"<tr align='left'>";
				echo "<td><input type='hidden' name = 'ed_id' value ='".$row['fsq_id']."' /> <input type='hidden' name = 'centre' value ='".$centre."' /><input type='hidden' name = 'chemin' value ='".$chemin."' /><input type='hidden' name = 'titrepage' value ='".$titrepage." N° ".$row['fsq_id']."' /></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_id']."</span></td>";
				echo "<td></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_dd']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_rq']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_nom']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_origine']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_type_proc']."</span></td>";
				//if ($row[''] == '0000-00-00' ) {echo "<td>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_prev']."</td>"; } // AFFICHE DATE DE FIN PREVISIONNELLE SI YA UNE DATE
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_resp_meo']."</span></td>";
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_fin_eval']."</span></td>";	 
				//if ($row['fsq_date_fin_eval'] == '0000-00-00' ) {echo "<td class='data'>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_eval']."</td>"; }		
				echo "<td style='padding-left:6px'><input title='Visualiser' type='image' src='images/folder_explore.jpg' name='Visualiser' /></td>
				</form> ";
				?>			
					<!--<td><a href="AccueilPilote.php?centre=include/res_filtre_multi.php&n=<?php echo $row['fsq_id'] ;?>" onclick= "return(confirm('Etes-vous sûr de vouloir supprimer cette fiche?'));">Supprimer</a></td>-->
					<td><input type='image' src='images/coix_supprimer.gif' title="Supprimer" value="Supprimer" onclick= 
					"if (window.confirm('Vous etes sur vouloir supprimer la fiche N° <?php echo $row['fsq_id']?> ?')) 
					{
					location.href='AccueilPilote.php?centre=include/res_filtre_multi.php&n=<?php echo $row['fsq_id'] ;?>';
					location.reload(true);<!-- rafraichissement page pour confirmer suppression <---Probleme     -->
					}
					else {return false;}"></td>
				<?php
			}
		}
		else//Si il n'est pas Pilote/Rq alors il n'a pas le pouvoir de supprimer
		{
			echo " <table >
			<tr>
			<td colspan='4'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>$titrecentre</span>	</td>
			</tr>
			<tr>
			<td>&nbsp;</td>
			</tr>
			<tr >
			<td>&nbsp;</td>	
				<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Fiche N°</span></td>
				<td></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de création</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de prise en charge</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Pilote</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Origine</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Thème de la fiche</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Visualiser</span></td>
			<td></td>
			</tr>";
			 while ($row = mysql_fetch_assoc($result) )
			{
				//print_r($row);
				echo "<form name='fsq' action='".$action."' method='get' enctype='multipart/form-data' >"; 
				echo"<tr align='left'>";
				echo "<td><input type='hidden' name = 'ed_id' value ='".$row['fsq_id']."' /> <input type='hidden' name = 'centre' value ='".$centre."' /><input type='hidden' name = 'chemin' value ='".$chemin."' /><input type='hidden' name = 'titrepage' value ='".$titrepage." N° ".$row['fsq_id']."' /></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_id']."</span></td>";
				echo "<td></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_dd']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_rq']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_nom']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_origine']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_type_proc']."</span></td>";
				//if ($row[''] == '0000-00-00' ) {echo "<td>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_prev']."</td>"; } // AFFICHE DATE DE FIN PREVISIONNELLE SI YA UNE DATE
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_resp_meo']."</span></td>";
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_fin_eval']."</span></td>";	 
				//if ($row['fsq_date_fin_eval'] == '0000-00-00' ) {echo "<td class='data'>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_eval']."</td>"; }		
				echo "<td style='padding-left:6px'><input title='Visualiser' type='image' src='images/folder_explore.jpg' name='Visualiser' /></td>
				</form> ";
			}
		}
		//echo "vous êtes connecté en tant que :"; print_r($_COOKIE['qui']);
		echo "</table>"; 
}
else 
{ 
	echo
		"
			<table><tr><td style='padding:30px'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'> Actuellement, aucune fiche ne correspond à ce critère</span>
			</td></tr></table>
		";
}		
?>

Voila mon ptit flo, ta vu c'est des code de fou xD!
0
J'ai oublié de te mettre le code de la page(res_filtre_multi.php) qui est appeler par le bié du bouton recherche de la page ('filtre_multi'.php) ou y'a la requete foreach.
<?php
header('pragma:no-cache');
setlocale(LC_TIME, "fr");
require ('class.pagination.php');
require ('qualite.inc');
$action = 'Accueil'.$_COOKIE['qui'].'.php';
$login = $_COOKIE['qui'];
//print_r ($action);
$var = strtoupper(addslashes($_COOKIE['nom']));
$fields = array('fsq_id', 'fsq_origine', 'fsq_pilote', 'fsq_resp_meo', 'fsq_etat', 'fsq_date_rq', 'fsq_date_dd', 'fsq_type_proc', 'fsq_date_cur' ) ; // Champs <form>/BdD 
$query = 'SELECT * FROM fsq WHERE 1 = 1' ; 
foreach ($fields AS $field ) { 
   	IF ( isset($_POST[$field]) && $_POST[$field] !== '' ) { // IGNORE les champs vides 
        	$query .= " AND $field = '{$_POST[$field]}'" ; 
   	} 
} 			
																						
$centre = "consultation.php";
$chemin = " Consultation FSQ";
$titrepage = "Consultation FSQ";
$titrecentre = "Liste des fiches"; 	
$rqetat = 11;	

$LO_Link = mysql_connect(Def_Login, Def_User, Def_PW);
mysql_select_db(Def_Base, $LO_Link);

$result = mysql_query($query, $LO_Link) or die(mysql_error());
$total = mysql_num_rows($result);

?>

<?php 
if ($total != 0)
{
		if($login =='Pilote')//Si on est connecté en tant que pilote/RQ alors on peut supprimer
		{
			//echo "vous êtes connecté en tant que :"; print_r($_COOKIE['qui']);
			if (isset($_GET['n'])) // Si on demande de supprimer une fsq
			{
				// Alors on supprime la fsq correspondante
				// On protège la variable "fsq_id" pour éviter une faille SQL
				$_GET['n'] = addslashes($_GET['n']);
				mysql_query('DELETE FROM fsq WHERE fsq_id=\'' . $_GET['n'] . '\'');
			}
		echo " <table >
		<tr>
		<td colspan='4'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>$titrecentre</span>	</td>
		</tr>
		<tr>
		<td>&nbsp;</td>
		</tr>
		<tr >
		<td>&nbsp;</td>	
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Fiche N°</span></td>
			<td></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de création</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de prise en charge</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Pilote</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Origine</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Thème de la fiche</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Visualiser</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Supprimer</span></td>
	  <td></td>
	</tr>    ";
			 while ($row = mysql_fetch_assoc($result) )
			{
				//print_r($row);
				echo "<form name='fsq' action='".$action."' method='get' enctype='multipart/form-data' >"; 
				echo"<tr align='left'>";
				echo "<td><input type='hidden' name = 'ed_id' value ='".$row['fsq_id']."' /> <input type='hidden' name = 'centre' value ='".$centre."' /><input type='hidden' name = 'chemin' value ='".$chemin."' /><input type='hidden' name = 'titrepage' value ='".$titrepage." N° ".$row['fsq_id']."' /></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_id']."</span></td>";
				echo "<td></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_dd']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_rq']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_nom']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_origine']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_type_proc']."</span></td>";
				//if ($row[''] == '0000-00-00' ) {echo "<td>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_prev']."</td>"; } // AFFICHE DATE DE FIN PREVISIONNELLE SI YA UNE DATE
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_resp_meo']."</span></td>";
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_fin_eval']."</span></td>";	 
				//if ($row['fsq_date_fin_eval'] == '0000-00-00' ) {echo "<td class='data'>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_eval']."</td>"; }		
				echo "<td style='padding-left:6px'><input title='Visualiser' type='image' src='images/folder_explore.jpg' name='Visualiser' /></td>
				</form> ";
				?>			
					<!--<td><a href="AccueilPilote.php?centre=include/res_filtre_multi.php&n=<?php echo $row['fsq_id'] ;?>" onclick= "return(confirm('Etes-vous sûr de vouloir supprimer cette fiche?'));">Supprimer</a></td>-->
					<td><input type='image' src='images/coix_supprimer.gif' title="Supprimer" value="Supprimer" onclick= 
					"if (window.confirm('Vous etes sur vouloir supprimer la fiche N° <?php echo $row['fsq_id']?> ?')) 
					{
					location.href='AccueilPilote.php?centre=include/res_filtre_multi.php&n=<?php echo $row['fsq_id'] ;?>';
					location.reload(true);<!-- rafraichissement page pour confirmer suppression <---Probleme     -->
					}
					else {return false;}"></td>
				<?php
			}
		}
		else//Si il n'est pas Pilote/Rq alors il n'a pas le pouvoir de supprimer
		{
			echo " <table >
			<tr>
			<td colspan='4'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>$titrecentre</span>	</td>
			</tr>
			<tr>
			<td>&nbsp;</td>
			</tr>
			<tr >
			<td>&nbsp;</td>	
				<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Fiche N°</span></td>
				<td></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de création</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Date de prise en charge</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Pilote</span></td>  
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Origine</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Thème de la fiche</span></td>
			<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#000000; font-weight:bold'>Visualiser</span></td>
			<td></td>
			</tr>";
			 while ($row = mysql_fetch_assoc($result) )
			{
				//print_r($row);
				echo "<form name='fsq' action='".$action."' method='get' enctype='multipart/form-data' >"; 
				echo"<tr align='left'>";
				echo "<td><input type='hidden' name = 'ed_id' value ='".$row['fsq_id']."' /> <input type='hidden' name = 'centre' value ='".$centre."' /><input type='hidden' name = 'chemin' value ='".$chemin."' /><input type='hidden' name = 'titrepage' value ='".$titrepage." N° ".$row['fsq_id']."' /></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_id']."</span></td>";
				echo "<td></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_dd']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_rq']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_nom']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_origine']."</span></td>";
				echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_type_proc']."</span></td>";
				//if ($row[''] == '0000-00-00' ) {echo "<td>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_prev']."</td>"; } // AFFICHE DATE DE FIN PREVISIONNELLE SI YA UNE DATE
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_resp_meo']."</span></td>";
				//echo "<td><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'>".$row['fsq_date_fin_eval']."</span></td>";	 
				//if ($row['fsq_date_fin_eval'] == '0000-00-00' ) {echo "<td class='data'>&nbsp;</td>"; } else {echo "<td class='data'>".$row['fsq_date_fin_eval']."</td>"; }		
				echo "<td style='padding-left:6px'><input title='Visualiser' type='image' src='images/folder_explore.jpg' name='Visualiser' /></td>
				</form> ";
			}
		}
		//echo "vous êtes connecté en tant que :"; print_r($_COOKIE['qui']);
		echo "</table>"; 
}
else 
{ 
	echo
		"
			<table><tr><td style='padding:30px'><span style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#1A8ACC; font-weight:bold'> Actuellement, aucune fiche ne correspond à ce critère</span>
			</td></tr></table>
		";
}		
?>
0
PoZiF Messages postés 6 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010
29 juin 2010 à 10:53
Oki. Je bosse pas cette aprm donc j'y jeterai un coup d'oeil ;) J'ai du code à finir aussi
0
PoZiF Messages postés 6 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010
29 juin 2010 à 14:22
Dans ta partie requêtes ta cela :
$fields = array('fsq_id', 'fsq_origine', 'fsq_pilote', 'fsq_resp_meo', 'fsq_etat', 'fsq_date_rq', 'fsq_date_dd', 'fsq_type_proc', 'fsq_date_cur' ) ; // Champs 
$query = 'SELECT * FROM fsq WHERE 1 = 1' ; 
foreach ($fields AS $field ) { 
   	IF ( isset($_POST[$field]) && $_POST[$field] !== '' ) { // IGNORE les champs vides 
        	$query .= " AND $field = '{$_POST[$field]}'" ; 
   	} 
} 	


Ton tableau $fields n'est plus bon du coup, car dans ton code de tes checkbox ont tous pour name="Gpe_filtre" et ton tableau ne le comporte pas
0
PoZiF Messages postés 6 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010
29 juin 2010 à 14:42
Le mieux c'est de faire un peu comme ça :

<form method="post">

<input type="checkbox" name="a[]" value="fsq_id">1
<input type="checkbox" name="a[]" value="fsq_origine">2
<input type="checkbox" name="a[]" value="fsq_pilote">3

<!-- Important la [], sinon tu ne transmettra qu'une valeur de checkbox -->

<input type="submit">
</form>

<?php 
if(isset($_POST['a']))
{
	$a[] = $_POST['a']; //tu récupère les valeurs coches sous forme de tableau
}
?>



Après pour ta requête soit tu vérifie la si la checkbox est initialisé, et si oui ça valeur, ou alors tu donnes a chaque checkbox un name différent, ça te te permet de réutiliser le tabeau $fiels .
0
<?php  
if(isset($_POST['a'])) 
{ 
 $a[] = $_POST['a']; //tu récupère les valeurs coches sous forme de tableau 
} 
?> 

je mets ça ou?
Sinon le code suivant
 <input name="Gpe_filtre" type="checkbox" value="numero" onclick='affiche(this,"numero");enlever(this,"lib_origine");enlever(this,"lib_theme");enlever(this,"lib_pilote");enlever(this,"lib_plan");enlever(this,"lib_etat");enlever(this,"lib_création");enlever(this,"lib_prise_pilote");enlever(this,"lib_cura")'/> 


Il sert juste a faire apparaitre la liste déroulente je sais pas si tu avais compris? quand tu coche la case la liste deroulante apparait et ensuite tu peux faire la selection =).
Toutes les checkbox avec qui on pour name:Gpe_filtre ont tous la meme fonctionnalité en aucun elles ne servent à rechercher.
<!--Traitement de fiche Curative --> 
  
      <tr> 
      <td><label> 
         
        <div align="right" id="lib_cura" style="display:block"> 
          Traitement de fiche Curative 
         <input type="checkbox" name="fsq_date_cur" value="fsq_date_cur" onclick='affiche(this,"fsq_date_cur");enlever(this,"lib_numero");' /> 
        </div> 
  </label></td> 
    </tr> 
    </tr>  <!--Traitement par plan d'action --> 
  <tr> 
      <td><label> 
         
        <div align="right" id="lib_act" style="display:block"> 
         Traitement par plan d'action 
          <input type="checkbox" name="fsq_date_cur" value="fsq_amelioration_pilote" onclick='affiche(this,"fsq_amelioration_pilote");enlever(this,"lib_numero");' /> 
        </div> 
      </label></td> 
    </tr> 


Voila pour le form ensuite pour la requete dans la page res_filtre_multi.php
$fields = array('fsq_id', 'fsq_origine', 'fsq_pilote', 'fsq_resp_meo', 'fsq_etat', 'fsq_date_rq', 'fsq_date_dd', 'fsq_type_proc', 'fsq_date_cur', 'fsq_amelioration_pilote' ) ; // Champs <form>/BdD  
$query = 'SELECT * FROM fsq WHERE 1 = 1' ;  
foreach ($fields AS $field ) {  
    IF ( isset($_POST[$field]) && $_POST[$field] !== '' ) { // IGNORE les champs vides  
         $query .= " AND $field = '{$_POST[$field]}'" ;  
    }  
}  

J'ai rajouté les valeur de ma table ( fsq_date_cur et ,fsq_amelioration) qui corresponde respectivement aux fiche traiter en curative et au fiche traiter avec un plan d'action. Mais ceci ne fonctionne pas. Il m'affiche que aucune fiche ne correponds a ce critere ...
Je ne sais pas ou tu veux que je place ton "if isset $_post"
0
Tu dois te demander pourquoi il ne le fait pas avec la methode select vu que sa marche!^^? Car les valeurs de "fsq_date_cur" sont des dates..Donc si je fais avec un select je pourrais choisir qu'une fiche vu que la selection se fait pas date! Pareil pour la fsq_amelioration_pilote les valeurs qu'elle contient sont des commentaires(plan d'action) donc faire une selection des plan d'action mis en place ce n'est pas le top xD et pareil il va m'affiche qu'une fiche car c'est rare que les pilote établissent le même plan d'action âu caractère pres =p. Donc c'est pour il faut que je le fasse avec une checkbox afin qu'il me liste tes fiches qui ont été traité en curative ou par un plan d'action . Et je n'y arrive pas je galere deouis pas mal de temps sur sa now!
0
PoZiF Messages postés 6 Date d'inscription mardi 29 juin 2010 Statut Membre Dernière intervention 30 juin 2010
30 juin 2010 à 12:51
Je comprend pas ce que tu veux faire. Ton problème est au niveau de la requetes ou du xhtml lui même ?
Si j'ai bien compris Tu as 2 checkbox : A et B
Si A est coché, tu montres les selects 1 et 2
Si B est coché, tu montres les selects 3 et 4
C'est ça ?
0
Non du tout sa c'est déja fait ^^. Je veux juste que quand on clique sur une checkbox. Par exemple quand je clique sur la checkbox qui définie les fiche traiter en curative ( dont l'entité est 'fsq_date_cur') il m'affiche seulement les fiches qui ont été traiter en curative!Mais je ne
trouve pas comment faire ... y'a pas moyen de faire de mettre du php dans unje checkbox comme avec les select? sa serais plus simple . Sinon je ne vois toujours pas comment faut faire...
0