AJAX telechargement de fichiers

x-timas Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   -  
x-timas Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai "telechargement.php" qui me crée un fichier CSV et qui me permet de le télécharger.
Tout marche à merveille si je tape directement l'url de "telechargement.php" avec mes variables $_GET mais quand j'ai voulu exécuter le même fichier mais avec Ajaw pour éviter de recharger ma page ça ne marche plus.

J'ai affiché ma variables xhr_object.responseText et elle contenait les données qui devront être en principe dans le fichier que je vais télécharger.

Comment remédier à ce problème?

Il y a peut être des options à ajouter ou quelque chose dans ce genre pour qu'il m'exéucute juste mon fichier php?

Heeeeeeeeeeeelp!! C'est urgent je suis bloqué y a pas mal de temps la dessus :'(
A voir également:

3 réponses

pyschopathe Messages postés 1974 Date d'inscription   Statut Membre Dernière intervention   135
 
Un up de stressé après onze minutes et douze secondes, faut oser quand même...

Pis avec les infos que tu donnes, ça va être coton de t'aider, on n'est pas devins !
2
x-timas Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   1
 
je passe le code de ma fonction ajax:
function download_answer(file){
var xhr_object = null;
	
if  (window.XMLHttpRequest){ // Firefox 
	xhr_object = new XMLHttpRequest();
	// Handling Safari/firefox bug :
	if (xhr_object.overrideMimeType) {
		xhr_object.overrideMimeType("text/html");
		//xhr_object.overrideMimeType("text/xml");
	}
}
else if(window.ActiveXObject) // Internet Explorer 
	xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
else { // XMLHttpRequest non supporté par le navigateur 
	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
return; 
}
	
var filename = "telecharger_reponse.php?fiche="+ file;

xhr_object.open("GET", filename, true); 

xhr_object.onreadystatechange = function() { 
	//alert('wait');
	if (xhr_object.readyState == 4) {
		if (xhr_object.status == 200) {
			var tmp = xhr_object.responseText;
			if(tmp == "ok"){
				alert("Ok");
			}else{
				alert("Un problème est survenu.");
			}
		}else{ 
			alert('Un problème est survenu.');
		} 
	}
}
xhr_object.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr_object.send("NULL");

return(false);
}


Dans telecharger_reponse.php j'ai:
$fichier = 'Reponses/'.$_SESSION['id_sondage'].'_'.$_GET['fiche'].'_reponse.csv';
$fp = fopen($fichier, 'w') or die("can't open file");

$txt = array();
$txt2 = array();
foreach($reponse as $r){
	$question = $req->get_question_by_id($r['id_question']);
	$txt[] = $question['titre_q'];
	str_replace("__", " | ", $r['text_reponse']);
	$txt2[] = $r['text_reponse'];
}
	
fputcsv($fp, $txt, ";");
fputcsv($fp, $txt2, ";");
	
fclose($fp);
	
header('Content-Transfer-Encoding: binary'); 
header('Content-Disposition: attachment; filename="reponse_'.$_GET['fiche'].'.csv"');  
  
readfile($fichier);


L'exécuter tout seul me permet de télécharger mon fichers.
En Ajax ça ne passe plus, et quand j'ai fait un alert(tmp) dans ma fonction ajax il m'a affiché les données qui devront être dans le fichier.

Voila voilu, j'esper que ça aide et désolé pour le stress
1
x-timas Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   1
 
Up!!

Ou sont les geeks? ou sont les pro du web?

I'm still waiting
-1