Page 1 sur 1

Afficher une image dynamiquement

Posté : 09 juin 2008, 10:33
par broly10
salut a tous

j'ai un formulaire qui contient plusieurs champs dont un champ pour selectionner une image via le bouton parcourir(input type="file")

j'ai des champs obligatoires que je verifie avec une fonction javascript. je lance cette fonction avec onsubmit que j'affecte au formulaire.

mon probleme est que je souhaite que qaund l'utilisateur selectionne une image, je veux qu'elle s'affiche instantanément en dessous du input type="file". En fait, j'ai un bouton upload. EN cliquant sur ce bouton on doit voir apparaitre directement l'image sans valider le form.

j'ai reussi a faire cela mais avec une image qui se trouve dans ma racine. la le probleme c que meme en recuperant le chemin de l'image sélectionné on pe pas faire un truc du genre .src = c:/mes documents/mes images/test.jpg; il faut passer par les ../../ bref une mauvaise solution.

la solution est que j'upload l'image dans mon dossier image mais quand je clique sur le bouton upload ca me reinitialise le form et j'ai plus la verificatiion que les champs obligatoire sont saisis.

une solution?

merci d'avance pour votre aide.

Posté : 09 juin 2008, 10:50
par guilt92
Sans être catégorique je ne pense pas que tu puisses accéder à un fichier se trouvant sur le poste utilisateur et non pas le serveur (ou un serveur quelconque sur le net). J'ai donc peur qu'il faille uploader l'image avant qu'elle ne soit accessible... Sinon il faut que seules les url soit autorisées dans ton champ mais je pense que ce n'est pas ce que tu veux faire...

Sinon il faut lancer en ajax la procédure d'upload de fichier sur l'évènement du click de ton bouton upload. Cela te permettra d'appeler ton script php sans recharger la page et ainsi de mettre comme source à ton image (src) l'image uploadé sur le serveur. Regardes les tutoriaux sur l'ajax cela ne sera pas trop compliqué à mettre en place.

Posté : 09 juin 2008, 11:01
par broly10
en fait il faut que j'upload l'image avec ajax et non php c'est ca?

ou alors tu veux dire que dans la fonction javascript de mon bouton upload, je fais appel a la fonction php chargé d'uploader l'image.

comment on fait pour lancer une fonction php a partir de javascript ?

Posté : 09 juin 2008, 11:19
par guilt92
en fait il faut que j'upload l'image avec ajax et non php c'est ca?
L'ajax n'est pas un langage, c'est une fonction javascript qui permet de lancer du code php "en direct" sans rechargement
comment on fait pour lancer une fonction php a partir de javascript ?
En utilisant l'ajax ! ;)

As tu regardé un des tutoriaux dans les résultats de la recherche donné dans mon poste précédent ?

Posté : 09 juin 2008, 12:53
par broly10
j'ai lu les tutoriaux. j'arrive a envoyer avec xhr.send des données de type text par exemple.

mais j'arrive pas a envoyer mon type file!! du coup dans le fichier php je peux pas faire l'upload.

si je fais $_POST['nom'] ca marche et ca m'affiche [object HTMLInputElement]
si je fais $_FILES['nom'] ca marche pas...

si t'a une solution merci

Posté : 09 juin 2008, 13:45
par guilt92
Oui effectivement j'avais pas pensé qu'il fallait de toutes façons submit le formulaire pour avoir accès au fichier $_FILES créé... Parce que la tu peux récupérer en php le chemin du fichier mais c'est comme en js tu vas pas pouvoir aller le chercher sur le poste client... J'ai peur qu'il faille valider le formulaire quoiqu'il arrive, en tous cas désolé mais je ne connais pas la solution :(

Apparement c'est faisable en créant un iframe pour faire une fausse validation, y a pas mal d'exemple sur le net (google : upload files ajax) mais bon c est assez compliqué...