Affichage ligne BDD - Fonction

Fermé
Gogo - 24 juin 2009 à 14:25
 Gogo - 25 juin 2009 à 10:24
Bien le Bonjour,

Alors voila, je m'occupe d'un module qui permet de voir dans un SAV l'état des machines, leurs avancements etc... , je voudrais en appuyant sur un bouton checkbox "Afficher Dossier Clos" que , comme son nom l'indique d'afficher toutes les prise en charge alors que par défaut il y a juste les prise en charge qui sont "Ouvert" et "Pas d'intervention" , je m'explique :

Dans la BDD :
NULL => Pas d'intervention
0 = > Ouvert
1 => Cloturé

Donc si vous m'avez suivi en appuyant sur la chekbox , je veux afficher en plus les prise en charge qui sont cloturé . On m'a dis d'utiliser une fonction mais je vois pas comment il faudrait l'utiliser . Voila si quelqu'un a des idées pour me venir en aide . En vous remerciant


Code:

<label for="chk5">Afficher Dossier Clos</label>
<input id="dossier_clos" type="checkbox"    />

<?php

$req_dossier = "select * from priseencharge ";
$result = odbc_exec($connexion, $req_dossier) or die ("Ne peut pas exécuter la requête.");
	
	while (odbc_fetch_row($result))   {

 if (odbc_result($result, "cloture") != 1  ){
?>
	<tr>
<td class = "cloture" align= "center"> 
<?php   		
		if (odbc_result($result,"cloture") == NULL) {
		echo "Pas d'intervention";}
		else 
		echo "Ouvert";
		?> 
</td> <tr>
A voir également:

3 réponses

Wow, j'avais pas vu l'heure de postage mais tant pis je réponds quand même tant qu'à faire ^^.

Donc déjà pourquoi fais-tu un "select *" si tu n'as besoin que d'une colonne?
Ensuite pourquoi ne fais tu pas un "select cloture from priseencharge where cloture != 1" plutôt que de refaire le test à chaque fois après?

Pour ton problème de checkbox, je pense que le mieux est de faire un peu d'AJAX.
En gros, tu sépares ton fichier PHP qui génère ton tableau dans un autre fichier (sav.php).

Dans ton fichier principal, tu rajoutes ce javascript
<script type="text/javascript">
function getTab(param)
{ 
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }
 
    xhr.onreadystatechange  = function()
    { 
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200) 
                 document.getElementById("divTab").innerHTML =  xhr.responseText; 
         }
    }; 

   xhr.open( GET", "sav.php?type="+param,  true); 
   xhr.send(null); 
} 
</script>



A la place du tableau tu mets donc un
<div id="divTab"></div>



Et dans ton sav.php

$req_dossier = "select cloture from priseencharge";
if($_GET["type"]==false)
{
$req_dossier .= " cloture != 1";
}



Et enfin dans le fichier principal :

<input type="checkbox" onchange="getTab(this.value);">

et tout à la fin du body :

<script type="text/javascript">
getTab(false);
</script>



Voilà, bon bien sûr j'ai pas testé donc il doit y avoir pas mal d'erreur mais c'est l'idée.
Si tu as des questions je serais là demain aprem normalement. (demain matin partiel T_T).
Bonne journée,

Rémi.
0
En me relistant, il manque un where :
$req_dossier .= "where cloture != 1";


et un guillemet

  xhr.open( "GET", "sav.php?type="+param,  true); 


et surement d'autres choses mais là je vais me coucher.
0
Salut désolé mais ça a changer maintenant (c'est pas moi qu'il l'a voulu ^^ ) , il faut que j'affiche juste celle qui sont clôturé
Salut, bah pour tout te dire je connais rien en Ajax donc je ne comprend rien de tout de ce tu m'a mis. Je vais tester et essayer si ça marche,je le mettrais pour dépanner, mais bon la comme je suis en stage , il faudra que j'explique au professeurs tout ça en détails, la galère quoi.

Et pour la requête au début il y a plusieurs colonnes mais j'ai essayer de simplifier parce que sinon ça faisais pas mal de lignes en plus ^^ .

normalement j'ai ça (il manque les checkbox bien sur ):

<table border = "1" class="clear" align="left" cellpadding="10"   style="font-size:smaller ;">

	<tr> 
	<th id = "idpriseencharge"  > Prise&nbsp;en&nbsp;charge&nbsp;le&nbsp;: </th>
	<th id = "idraison" > Raison social </th>
	<th id = "idnumeroDossier" > N° Dossier </th>
	<th id = "idNomPrenom" > Technicien </th>
	<th id = "idmarque" > Marque  </th>
	<th id = "idgarantie" > Garantie</th>
	<th id = "idcloture" > clos/Ouvert </th>
	<th id = "iddateDispo" > Délai </th>
	</tr>

	<?php
$req_dossier = "select cloture from priseencharge where cloture != 1 INNER JOIN client ON num_client_prise = sCliCode INNER JOIN produit ON num_produit_prise =  num_produit INNER JOIN modele ON num_modele_produit =num_modele LEFT JOIN representant ON code = num_vendeur_inter order by date_dispo ASC";
	
	$result = odbc_exec($connexion, $req_dossier)or die("Ne peut pas exécuter la requête.");

	while (odbc_fetch_row($result))   { 
?>
	<tr>
<td class = "priseencharge" align= "center" >  
<?php echo	unparse_date(odbc_result($result,"date_prise")); ?> </td> 
<td class = "raison" align= "center" >  
<?php echo odbc_result($result,"sCliRaisonSoc");  ?> </td> 
<td class = "numeroDossier" align= "center"> 
 <?php echo odbc_result($result,"num_dossier"); ?> </td> 
<td class = "NomPrenom" align= "center" ">
 <?php echo odbc_result($result, "Nom")."&nbsp;".odbc_result($result, "Prenom"); ?> </td>
<td class = "marque" align= "center" > 
 <?php echo odbc_result($result,"nom_modele");  ?> </td> 
<td class = "garantie" align= "center" >
  <?php echo odbc_result($result,"garantie_produit");  ?> </td> 
<td class = "cloture" align= "center" > 
 <?php   		if (odbc_result($result,"cloture") == NULL) {
                       echo "Pas d'intervention";}
	               else 
	               echo "Ouvert";
		       ?> </td>
</table>
0