Ouverture fichier xml en Ajax

Fermé
pillarofsummer - 29 mai 2012 à 11:42
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 29 mai 2012 à 21:38
Bonjour,
Je me suis déjà risqué à poser cette question dans un autre forum. Sans réponse ..... :(
Mon soucis est le suivant:
Je dois ouvrir un fichier xml en utilisant l'Ajax que je ne maitrise pas du tout. On m'a conseillé d'utiliser prototype... mais je ne trouve rien permettant l'ouverture/lecture/ecriture/fermeture de fichier.
J'aurais très bien pu le faire en php, mais le reste de mon code étant en javascript....on m'a fortement conseillé de faire cette opération en Ajax.
J'ai retourné le web dans tous les sens et j'ai bien trouvé une fonction ou deux par-ci par-là..mai rien n'y fait.

Voila, en vous remerciant.



A voir également:

2 réponses

D'un point de vue navigateur, il n'existe pas cette notion de pointeur de fichiers sur le système.

AJAX est une API permettant de consulter une ressource HTTP en Javascript.

Avec jQuery, il devrait donc être possible de faire :

jQuery.ajax('http://host/myfile.xml',{
success : function(data){
console.debug(data);
}
})

La variable "data" devrait être un DOM Node, et donc avoir toutes les méthodes associées.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 mai 2012 à 21:38
Ajax est une fonctionnalité de javascript qui permet d'appeler un script php sur le serveur

donc tu fait ton script php de traitement de ton fichier xml et tu l'appelles en Ajax, tu peux mêm lui passer une ou plusieurs valeurs et récupérer en retour une réponse.

un exemple:
<script type="text/javascript">
//fonction Appel Ajax
function makeRequest(url,id_lire,id_ecrire){ 
	var http_request = false; 
	//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs 
	if (window.XMLHttpRequest) { // Mozilla, Safari,... 
		http_request = new XMLHttpRequest(); 
		if (http_request.overrideMimeType) { 
			http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla 
		} 
	} else if (window.ActiveXObject) { // IE 
		try { 
		http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
		}	catch (e) { 
		try { 
		http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (e) {} 
		} 
	} 

	if (!http_request) { 
		alert('Abandon :( Impossible de créer une instance XMLHTTP'); 
		return false; 
	} 
	http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse 
	// lancement de la requete 
	http_request.open('POST', url, true); 
	//changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'.... 
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
	obj=document.getElementById(id_lire); 
	data="fichier="+obj.value; 
	http_request.send(data); 
} 

function traitementReponse(http_request,id_ecrire) { 
	if (http_request.readyState == 4) { 
		if (http_request.status == 200) { 
			// cas avec reponse de PHP en mode texte: 
			//chargement des elements reçus dans la liste 
			var reponse_traitement=http_request.responseText; 
			obj = document.getElementById(id_ecrire); 
			obj.innerHTML = reponse_traitement; 
		} 
		else { 
			alert('Un problème est survenu avec la requête.'); 
		} 
	} 
}
</script>
<body>
<form name="form1" action="" method="post">
fichier à traiter: <input type="text" name="nom_fichier_xml" id="champ_fichier_xml" value="" />

<br /><input type="button" name="traitement_fichier_xml"  value="Traiter le fichier en Ajax" onclick="makeRequest(url,id_ecrire)('nom_de_ton_script_de traitement.php','champ_fichier_xml');" />
<br /><div id="reponse_traitement"  ><!-- ici sera ecrite la reponse du traitement --></div>
</body> 

dans ton script php tu recupéres le nom du fichier à traiter par $_POST['fichier"]

si traitement avec succès tu peux mêtre un echo "traitement du fichier $_POST['fichier"] terminé";

ce message sera affiché dans le div
0