[AJAX] tester la présence d'un fichier distant

Nouveau WRInaute
Bonjour, voilà je vous explique ma problématique :

Dans ma page test.php j'ai un form qui contient un bouton submit avec pour id "soumission" + 1 champ hidden avec pour id "nom_fichier"

J'aimerais écrire une fonction qui, sur l'évènement onclick du bouton submit, teste l'existence du nom de fichier (= la valeur de mon champ "nom_fichier") : si le fichier existe, j'ouvre une fenêtre pop up "traitement.php" pour la suite du traitement. Et si le fichier n'existe pas, je redirige ma page test.php vers erreur.php, et bien sûr, pas d'ouverture de ma fenêtre pop up "traitement.php".

Voilà l'ébauche de ma fonction :
Code:
$(document).ready(function () {
    $("#soumission").click(function() {
        var nom_du_fichier= $('#nom_fichier').attr('value');
        if ((nom_du_fichier== "") || ) {
			...traitement redirect vers erreur.php blablabla;
	}
	else if (!verifExistence(nom_du_fichier)) {
			...traitement redirect vers erreur.php blablabla;
	}
	else {
			...traitement ouverture de traitement.php dans une fenêtre pop up;
	}		
        return false;
    });
});

Là où je bloque essentiellement, c'est sur la façon de tester à la volée l'existence de mon fichier, donc la création de ma fonction "verifExistence()". Ca fait appel à de l'AJAX mais là, je sèche.

merci beaucoup pour votre aide
@+
 
Nouveau WRInaute
RESOLU [AJAX] tester la présence d'un fichier distant

Bon voilà c'est résolu, pour ceux que ça intéresse...
Code:
$(document).ready(function () {
    $("#soumission").click(function() {
        var nom_du_fichier= $('#nom_fichier').attr('value');
        var url_du_fichier = 'mon_repertoire/'+nom_du_fichier;
        if ((nom_du_fichier== "")) {
	    document.location.href="erreur.php";
	}
	else {
	    xhr=getXhr();
	    xhr.open("HEAD", url_du_fichier, true);
	    xhr.onreadystatechange=function() 
                {
		    if(xhr.readyState == 4) {
			if((xhr.status == 200)||(xhr.status == 0)) { 
			    window.open(nom_du_fichier,'Mon titre','Mes options');
			}
			else {
			    document.location.href="erreur.php";
			}
		     }
		 }
		 xhr.send(null);
        }		
        return false;
    });
});
 
Discussions similaires
Haut