Récuperer la valeur d'un input file[ajax]
Fermé
leod
Messages postés
98
Date d'inscription
samedi 12 janvier 2008
Statut
Membre
Dernière intervention
30 janvier 2009
-
2 août 2008 à 15:06
Wajih - 6 avril 2013 à 04:42
Wajih - 6 avril 2013 à 04:42
A voir également:
- Jquery get file from input
- Host file - Guide
- .Bin file - Guide
- .Dat file - Guide
- Win setup from usb - Télécharger - Utilitaires
- Iso file - Guide
6 réponses
Bonjour !
Je suis peut être en retard mais j'ai cherché longtemps à envoyer des données de type data en asynchrone en AJAX. Il existe des moyens très compliqués de le faire (envoyer purement et simplement ces données et les retranscrire à l'arrivée...).
Il y a un petit "truc" qui peut peut-être aider à avancer certains : ce n'est pas très propre ni très valide mais ça marche.
Le problème est que de base, nous savons envoyer des données autres que caractères à une page php (sans AJAX). Si on le fait tel quel, la page se recharge et ce n'est donc plus asynchrone. Le principe est donc de déporter ce chargement dans une zone invisible : une iframe.
Placez une iframe avec un style="display:none;" et un name="mon_nom_iframe" quelque part dans votre page. Elle va être le "réceptacle" de votre formulaire.
Pour dire à votre formulaire qu'il doit se charger dans l'iframe et non dans la frame courante, utilisez target :
<form target="mon_nom_iframe" action="..." enctype="multipart/form-data">
....
</form>
Pour récupérer des valeurs dans l'iframe, un peu de onload et de javascript feront passer ça pour de l'asynchrone.
Ca fonctionne, ça aide, mais ce n'est pas le plus propre, je l'avais dit ^^.
Je suis peut être en retard mais j'ai cherché longtemps à envoyer des données de type data en asynchrone en AJAX. Il existe des moyens très compliqués de le faire (envoyer purement et simplement ces données et les retranscrire à l'arrivée...).
Il y a un petit "truc" qui peut peut-être aider à avancer certains : ce n'est pas très propre ni très valide mais ça marche.
Le problème est que de base, nous savons envoyer des données autres que caractères à une page php (sans AJAX). Si on le fait tel quel, la page se recharge et ce n'est donc plus asynchrone. Le principe est donc de déporter ce chargement dans une zone invisible : une iframe.
Placez une iframe avec un style="display:none;" et un name="mon_nom_iframe" quelque part dans votre page. Elle va être le "réceptacle" de votre formulaire.
Pour dire à votre formulaire qu'il doit se charger dans l'iframe et non dans la frame courante, utilisez target :
<form target="mon_nom_iframe" action="..." enctype="multipart/form-data">
....
</form>
Pour récupérer des valeurs dans l'iframe, un peu de onload et de javascript feront passer ça pour de l'asynchrone.
Ca fonctionne, ça aide, mais ce n'est pas le plus propre, je l'avais dit ^^.
marchaiseng
Messages postés
154
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
13 août 2013
7
2 août 2008 à 15:08
2 août 2008 à 15:08
Jspr répondre à ton problème.
<?php echo $_POST['Filedata']; ?>
<?php echo $_POST['Filedata']; ?>
leod
Messages postés
98
Date d'inscription
samedi 12 janvier 2008
Statut
Membre
Dernière intervention
30 janvier 2009
2
2 août 2008 à 15:21
2 août 2008 à 15:21
merci pour ta réponse mais mon probleme n'est pas du tout a ce niveau la
je me suis mal exprimé sans doute ...
disons que si je lance un fichier de traitement sur le action ou sur un onclick (ex: script.php)
le fichier script.php ne peu recuperer la valeur $_POST['Filedata'];
enfin ou du moins je n'y arrive pas et je cherche une alternative !
car mon script.php serai en charge de tester le fichier taille etc ... et renvera une reponse a afficher de facon asynchrone dans le formulaire
je me suis mal exprimé sans doute ...
disons que si je lance un fichier de traitement sur le action ou sur un onclick (ex: script.php)
le fichier script.php ne peu recuperer la valeur $_POST['Filedata'];
enfin ou du moins je n'y arrive pas et je cherche une alternative !
car mon script.php serai en charge de tester le fichier taille etc ... et renvera une reponse a afficher de facon asynchrone dans le formulaire
marchaiseng
Messages postés
154
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
13 août 2013
7
4 août 2008 à 22:11
4 août 2008 à 22:11
Je ne suis plus assez qualifié pour le dire...lol
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je pense qu'un input de type file se recupere par la variable globale $_FILE mains non pas avec $POST, et ne pas oublier l'attribut "enctype" dans la balise <form>