AJAX telechargement de fichiers

Fermé
x-timas Messages postés 124 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 17 décembre 2010 - 26 août 2009 à 14:41
x-timas Messages postés 124 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 17 décembre 2010 - 26 août 2009 à 15:37
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 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
26 août 2009 à 15:19
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 vendredi 7 mars 2008 Statut Membre Dernière intervention 17 décembre 2010 1
26 août 2009 à 15:37
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 vendredi 7 mars 2008 Statut Membre Dernière intervention 17 décembre 2010 1
26 août 2009 à 14:52
Up!!

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

I'm still waiting
-1