Bonsoir =)

Help ! au secours ! je deviens fou ! xD
J'essai un truc simple sur le papier, mais alors...j'y ai passé la nuit, la journée ...et impossible d'arriver à mes fin, ça me rend fou xD

J'ai simplement créé un module perso. Il présente un formulaire avec callback 'AJAX' qui permet d'afficher les données en forme de table d'une base de donnée. Tout cela fonctionne à merveille !

Maintenant ce que je cherche à faire c'est pouvoir exporter mes données array (array construit à partir de db_query_range) vers 'fichier type Excel' et de permettre à un utilisateur d'enregistrer un fichier type tableur qui les contient (pour qu'il puisse taffer sur les donénes avec son Excel).
Pour le moment, dès que l'utilisateur clic sur "chercher", automatiquement je souhaite que le fichier se télécharge.

J'ai essayé plein de truc, j'ai recherché partout...mais impossible d'y arriver, et je me mange des erreurs que je ne comprendr pas :

Exemple : j'ai voulu utiliser le package php_writeexcel se trouvant ici http://www.bettina-attack.de/jonny/v...hp_writeexcel/.
j'ai repris le code de l'exemple simple de ce package (rien de bien sorcier), ce qui m'a donné :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
$fname = tempnam("/tmp", "stocks.xls");
	$workbook = &new writeexcel_workbook($fname);
	$worksheet =& $workbook->addworksheet();
 
	$worksheet->set_column(0, 3, 15);
 
	# Create a format for the column headings
	$header =& $workbook->addformat();
	$header->set_bold();
	$header->set_size(20);
	$header->set_color('blue');
 
	# Write out the data
	foreach($select as $i=>$element){
		$worksheet->write(0,$i,$element,$header);
	}
 
	foreach($rows as $i=>$row){
		foreach($row as $j=>$value){
			$worksheet->write(($i+1), $j,$value);	
		}
	}
	//dpm($workbook);
	$workbook->close();
 
	header("Content-Type: application/x-msexcel; name=\"example-stocks.xls\"");
	header("Content-Disposition: inline; filename=\"example-stocks.xls\"");
 
	$fh=fopen($fname, "rb");
 
	fpassthru($fh);
 
	unlink($fname);
 
	return;
et voici l'erreur que j'obtiens...

Une erreur HTTP AJAX s'est produite.
Code de statut HTTP : 200
Informations de débogage ci-dessous.
Chemin : /chiro/system/ajax
StatusText: OK
ResponseText : !!! pleins de caractères byzarre, comme si l'encodage n'était pas bon !!!
...[ {"command":"settings", "settings":{"basePath":"\u002Fchiro\u002F", "pathPrefix":"", "ajaxPageState":{"theme":"bartik", "theme_token":"AcMpF7dcJRDsAbzWXyEahmUpEmWizn14AanKwHLlz0M"}, "overlay":{"paths":{"admin":"node\u002F*\u002Fedit\u000Anode\u002F*\u002Fdelete\u000Anode\u002F*\u002Frevisions\u000Anode\u002F*\u002Frevisions\u002F*\u002Frevert\u000Anode\u002F*\u002Frevisions\u002F*\u002Fdelete\u000Anode\u002Fadd\u000Anode\u002Fadd\u002F*\u000Aoverlay\u002Fdismiss-message\u000Auser\u002F*\u002Fshortcuts\u000Aadmin\u000Aadmin\u002F*\u000Abatch\u000Ataxonomy\u002Fterm\u002F*\u002Fedit\u000Anode\u002F*\u002Ftranslate\u000Auser\u002F*\u002Fcancel\u000Auser\u002F*\u002Fedit\u000Auser\u002F*\u002Fedit\u002F*\u000Adevel\u002F*\u000Anode\u002F*\u002Fdevel\u000Anode\u002F*\u002Fdevel\u002F*\u000Acomment\u002F*\u002Fdevel\u000Acomment\u002F*\u002Fdevel\u002F*\u000Auser\u002F*\u002Fdevel\u000Auser\u002F*\u002Fdevel\u002F*\u000Ataxonomy\u002Fterm\u002F*\u002Fdevel\u000Ataxonomy\u002Fterm\u002F*\u002Fdevel\u002F*", "non_admin":"admin\u002Fstructure\u002Fblock\u002Fdemo\u002F*\u000Aadmin\u002Freports\u002Fstatus\u002Fphp"}, "pathPrefixes":[ "en", "fr" ], "ajaxCallback":"overlay-ajax"}}, "merge":true}, {"command":"insert", "method":null, "selector":null, "data":"\u003Cdiv id=\u0027test-ajax\u0027\u003E\u003Ctable\u003E\u003Ccaption\u003ERésultat(s)\u003C\u002Fcaption\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003Enom\u003C\u002Fth\u003E\u003Cth\u003Eprenom\u003C\u002Fth\u003E\u003Cth\u003ENumeroSite\u003C\u002Fth\u003E\u003Cth\u003ELatitude\u003C\u002Fth\u003E\u003Cth\u003ELongitude\u003C\u002Fth\u003E\u003Cth\u003EAltitude\u003C\u002Fth\u003E\u003Cth\u003EDatePrise\u003C\u002Fth\u003E\u003C\u002Ftr\u003E\u003C\u002Fthead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Cth\u003Elopez\u003C\u002Fth\u003E\u003Cth\u003Ematthieu\u003C\u002Fth\u003E\u003Cth\u003E1\u003C\u002Fth\u003E\u003Cth\u003E123456\u003C\u002Fth\u003E\u003Cth\u003E123456\u003C\u002Fth\u003E\u003Cth\u003E12345\u003C\u002Fth\u003E\u003Cth\u003E2013-02-03\u003C\u002Fth\u003E\u003C\u002Ftr\u003E\u003Ctr\u003E\u003Cth\u003Elopez\u003C\u002Fth\u003E\u003Cth\u003Ematthieu\u003C\u002Fth\u003E\u003Cth\u003E42\u003C\u002Fth\u003E\u003Cth\u003E453453\u003C\u002Fth\u003E\u003Cth\u003E456456\u003C\u002Fth\u003E\u003Cth\u003E56456\u003C\u002Fth\u003E\u003Cth\u003E2013-02-05\u003C\u002Fth\u003E\u003C\u002Ftr\u003E\u003C\u002Ftbody\u003E\u003C\u002Ftable\u003E\u003C\u002Fdiv\u003E", "settings":null}, {"command":"insert", "method":"prepend", "selector":null, "data":"", "settings":null} ]
Alors j'ai tenté de caller des "dpm(...);" ici et là mais ça ne m'a pas vraiment aidé.. je me suis dit qu'il devait peut etre avoir un soucis d'encodage (vu l'erreur byzarre que j'ai), donc j'ai convertit tout mon module y compris le package en UTF8..mais pas d'amélioration...

J'ai essayé d'autres packages, mais toujours pareil, des erreurs qui sortent de je ne sais ou et qui me rendent fou xD (faudrait que j'aille dormir un peu peut être haha)

Je remercie d'avance le petit Jésus du forum qui va me sortir la solution que j'aurai du voir dès le début, toute simple, toute facile et qui m'aurait économisé ces longues heures de galère x)