Boite de dialogue "enregistrer sous"

Eléphanteau du PHP | 23 Messages

16 déc. 2013, 10:06

Hello,
Je revien sur se forum après quelques semaines pour expliquer un nouveau problème.
En effet, il y'a quelques semaines j'avais eu un problème qui était que je voulais avoir en cliquant sur un bouton "Filtrer" une boite de dialogue "enregistrer sous"/"ouvrir sous", sauf que il n'y avait que 1 bouton "Filtrer" et la commande devais prendre en compte un fichier HTLM retranscrit en CSV. J'avais réussi grace à l'aide de certaines personne sur le forum, seulement là c'est un problème assez similaire mais à la fois pas pareil, qui se présente à moi.
Je m'explique : J'aimerais aussi avoir une boite de dialogue "enregistrer sous"/"ouvrir sous", mais là, je n'ai pas que un bouton "Filtrer"( la recherche) mais plusieurs qui sont à droite de chaque ligne avec le nombre de "fournisseur". Ce que j'aimerais donc c'est donc d'avoir en cliquant sur chaque bouton filtrer, la boite de dialogue enregistrer sous qui s'ouvre et qui puisse télécharger le fichier avec tout les fournisseurs (critère de recherche) en question. Le fichier sera sur l'ordinateur ou le serveur je verrais.
Voilà à quoi ressemble le code de ma page :
<?
include("fonction.php");
if (!d_ok(1012)){header("location: accueil.php");exit;}

$_SESSION['en_cour']="doc_achat_comptes_four.php";

if($parent_id > 0){$_SESSION[$_SESSION['en_cour']]=id2url($parent_id);}
else if(($parent_ori == 1)or($_SESSION[$_SESSION['en_cour']]=="")){$_SESSION[$_SESSION['en_cour']]=parent(1012);}

$page = new page;
$page->head("Comptes fournisseurs");
$page->body();
$page->entete("Comptes fournisseurs");
$page->add_button(1,0);
$page->add_button(2,1,$_SESSION[$_SESSION['en_cour']]);
$page->add_button(3,0);
$page->add_button(0,2);
$page->add_button(0,2);
$page->fin_entete();
$page->datescript();

if(!isset($_SESSION['doc_achat_comptes_four_annee'])) $_SESSION['doc_achat_comptes_four_annee']=DATE('Y');
if(isset($_GET['r_annee'])) $_SESSION['doc_achat_comptes_four_annee']=$r_annee;
$annee=$_SESSION['doc_achat_comptes_four_annee'];

$req="select count(distinct id_externe) as nb, cmd_valid
from externe_service es
where activite in (2,3,5,6,7) and type = 6 and cmd = 1
and id not in($v_indic_achat_nofour,$v_service_cmd)
group by cmd_valid" ;
//echo $req;
$res=my_query($req);

while ($ligne=mysql_fetch_array($res))
	{
	$tot += $ligne['nb'];
	$t[$ligne['cmd_valid']]= number_format($ligne['nb'],0,' ',' ');
	}
?>
<table  class=forumline cellSpacing=1 cellPadding=2 width="100%" align=center border=0>

<tr>
<td class="m3">

	Année :
	<select id="button2" name="r_annee" size="1" onChange="location.href='doc_achat_comptes_four.php?r_annee='+this.value">
	<?
	for ($i =date("Y");$i > 2000; $i--) {if ($r_annee == $i){$s= ' selected ';}else{$s='';};echo "\t<option value=$i $s>$i</option>\n";}
	?>
	</select>

</td>
</tr>

</table>
&nbsp; &nbsp;

<center>

<table class=forumline width=500px height=250px align=center cellSpacing=<? echo $cellspacing;?> cellPadding=0 border=0>
<tr>
	<td class= "m3" width=70%>Total Comptes fournisseurs</td>
	<td class="cel1" style="text-align:center;"><? echo $tot; ?></td>
	<td colspan=2  class=m3><input id=button3 type=submit value="Filtrer"></td>
</tr>
<tr>
	<td class= "m3" >Fournisseurs actifs</td>
	<td class="cel1" style="text-align:center;"><? echo number_format(nombre_de("select count(distinct id_service) from achat_cmd where year(date)='".$annee."' and etat not in(0,5) and id_service not in (".$v_indic_achat_nofour.") "),0,' ',' '); ?></td>
	<td colspan=2  class=m3><input id=button3 type=submit value="Filtrer"></td>
</tr>
<tr>
	<td class= "m3" >Fournisseurs qualifiés</td>
	<td class="cel1" style="text-align:center;"><? echo $t[1]; ?></td>
    <td colspan=2  class=m3><input id=button3 type=submit value="Filtrer"></td>
</tr>
<tr>
	<td class= "m3" >Fournisseurs en cours d'évaluations</td>
	<td class="cel1" style="text-align:center;"><? echo $t[0]; ?></td>
    <td colspan=2  class=m3><input id=button3 type=submit value="Filtrer"></td>
</tr>
<tr>
	<td class= "m3" >Fournisseurs à surveiller</td>
	<td class="cel1" style="text-align:center;"><? echo $t[2]; ?></td>
    <td colspan=2  class=m3><input id=button3 type=submit value="Filtrer"></td>
</tr>
<tr>
	<td class= "m3" >Fournisseurs désaprouvés</td>
	<td class="cel1" style="text-align:center;"><? echo $t[3]; ?></td>
    <td colspan=2  class=m3><input id=button3 type=submit value="Filtrer"></td>
</tr>
<tr>
	<td class= "m3" >Fournisseurs ponctuels</td>
	<td class="cel1" style="text-align:center;"><? echo $t[4]; ?></td>
	<td colspan=2  class=m3><input id=button3 type=submit value="Filtrer"></td>
</tr>
</table>
</center>

<?
echo pied_page();
?>
PS : J'ai tester le code que j'avais mis pour mon ancien problème (en voici d'ailleur le lien) (php-debutant/mise-forme-fichier-csv-sur ... 69739.html) mais sa n'a pas marcher et je ne sais pas exactement ou le placer vue que j'ai plusieurs boutons "Filtrer".
Voilà j'espère avoir été claire ! Merci d'avance ! :)

Edit : j'ai un code qui génère bien la boite de dialogue, cepandant la boite s'ouvre des que j'actualise la page, et donc je n'ai pas accès ensuite à cette page. Or moi je veux que la boite s'affiche uniquement quand je clic sur un des bouton "Filtrer" qui se trouve sur cette page.

Code en question :
header ("Content-Type: application/download");
header ("Content-Disposition: attachment; filename=$yourfile");
header("Content-Length: " . filesize("$yourfile"));
$fp = fopen("$yourfile", "r");
fpassthru($fp);

Eléphanteau du PHP | 23 Messages

16 déc. 2013, 16:18

Personne pour m'aider ? :|

Je pense qu'il ne me manque juste une seul petite ligne de commande pour dire que la boite n'apparait uniquement quand j'appuye sur un bouton et non des que j'entre sur la page web.

Merci d'avance,

Matéo

Eléphanteau du PHP | 23 Messages

17 déc. 2013, 14:46

Je me permet de re up le sujet, je n'ai pas encore résolue le problème.

Eléphanteau du PHP | 23 Messages

18 déc. 2013, 16:55

Je re UP le sujet, car je n'ai toujours rien trouver :(