[php/ou autre ;o)] récup contenue input file

Résolu/Fermé
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 - 7 juin 2007 à 17:58
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 - 15 juin 2007 à 11:17
Bonjour, je cherche à récupere le contenue d'un champ "<input type="file" ...>

Le but : Lors de la modification d'information (don une image) je voudrai gérer les cas suivant, l'utilisateur :

-> fait parcourir et met une image (pas de problème)

-> Ne met rien puisqu'il ne souhaite pas modifier son image (Ca c'est encore jouable)

-> L'utilisateur ne veut plus d'image. Je pensai donc qu'il mette 'rien' (ou autre) dans le champs, comme sa je sait que c'est ni une image ni du vide.

S'il y a une autre solution... Bien sur on peut toujours rajouter un champs mais sa va vraiment compliquer mon code dans lequel j'ai déjà assez de mal à m'y retrouver.
A voir également:

10 réponses

rastajeff Messages postés 72 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 25 août 2009 13
7 juin 2007 à 18:02
JE sais pas si j'ai bien tout compris.

Déjà, pour récupéré une variable d'un input file :

$url = $_FILES['fichier']['name'];

Si tu veux récupérer l'url du fichier qui vient d'être uploadé.

Ensuite, tu pourrais expliquer précisément les 3 points ?
1
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
11 juin 2007 à 12:32
En faite, je croit que c'est tout à fait ce que je cherche à faire ;o)

J'ai un champ hidden qui correspond en faite au champ photo de ma table et je cherche à y mettre le contenu du champ file mais je croit bien que soit ma fonction JS n'est pas correct soit qu'on ne peut récupérer le contenu d'un input file.

Je vous redonne ma fonction JS :

onsubmit="document.forms["form1"]Photo_News.value=document.forms["form1"]Photo_News_toph.value;"


Alors ... ? Elle est correct ? ;o)
1
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
11 juin 2007 à 13:32
Bon, j'ai réussi à récuperer la valeur du champ input file.

Mais maintenant je doit traiter cette valeur avant de l'envoyer et je rencontre un autre souci avec ma fonction Java script :

function changePhoto(numForm, nomChamp){
	alert(nomChamp.toString()); // Je test les valeur ici pour être certain de ce que je récupère
	document.forms['form'.concat(numForm)].nomChamp.value=document.forms['form'+numForm].nomChamp+'_toph'.value;
}


Le problème est que je ne récupère pas nomChamp, à la place j'ai un : Object HTMLInputElement

Ma fonction JS est appeler comme ceci :

onmouseover="changePhoto(0, Photo_Bienv);



J'ai testé sans le toString ou avec valueOf et c'est toujours pareil :o{

Mais POURQUOI ??? :o{{{
1
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
11 juin 2007 à 16:57
Précision :

Si je fait une alert sur nomChamp.value

->Il m'affiche un : undefined

Mais je ne comprend pas plus :o{{
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
11 juin 2007 à 18:10
J'ai quelques précisions sur mon problème :

Déjà, erreur de ma part, lors de l'appel de la fonction je devai écrire :

onmouseover="changePhoto(0, 'Photo_Bienv')";


(Je tient tout de même à préciser que tout ceci est généré avec du php)

Ensuite, il semblerai que je n'arrive pas à utiliser mon Photo_Bienv contenu dans la variable nomChamp.

Je vous remet le code de la function :

function changePhoto(numForm, nomChamp){
	document.forms['form'.concat(numForm)].nomChamp.value=document.forms['form'.concat(numForm)].Photo_Bienv_toph.value;
}


J'ai tester en mettant directement Photo_Bienv à la place de nomChamp dans cette instruction et ca fonction. Je pense donc qu'il interprète nomChamp comme si c'était un nom de champ et nom comme une variable. J'ai bien tester les .value, .toString() et .valueOf() (avec et sans parrenthèse
>> machin.(nomChamp.value).value

Il doit bien y avoir un moyen pourqu'il comprenne qu'il doit interpréter cette variable et utiliser son contenu !!!
Je ne pratique pas beaucoup le JS, j'éspère donc être sur un problème de syntaxe à la con ;o) Sinon, si vous avez un autre moyen...

Je tien à préciser une autre chose ;o)))
Ce code n'est qu'une première étape, pour voir si sa fonctionne quand c'est simple (Et ce n'est pas le cas ! ;o). Une fois que ce problème sera réglès je devrai mettre des conditions pour mettre tel où tel chose dans ce champ hidden (qui pour le moment est en champ text pour voir quand sa fonctionne ;o))

Voila je croit que j'ai fait le tour.

Merci
1
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
12 juin 2007 à 12:22
Comme nous arrivons sur un nouveau problème, j'ouvre un nouveau poste dont voici l'adresse :

javascript interpretation var dans function


Le problème de départ n'est pas totalement résolue à cause d'un autre soucis. Je complèterai donc lorsque tout sera sous contrôle.

Pour le moment je sais que c'est faisable en passant par du javascript avec ce genre d'instruction sur le bouton submit :

onmouseover="document.forms[NomForm].NomChamp.value=document.forms[NomForm].NomAutreChamp.value;"


Avec cette évènement, lorsque le curseur passe sur le bouton de soumission du formulaire, le contenu du input partant le nom de "NomAutreChamp" est copier dans le input portant le nom "NomChamp".

Précision que dans mon cas NomAutreChamp est un input de type File et NomChamp est un input de type text ou un hidden.

Merci à Edouard et RastaJeff ;o)
1
Mr.White Messages postés 251 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 juillet 2012 53
15 juin 2007 à 11:17
en javaScript il fallait mettre :

onmouseover="document.forms[NomForm].element[NomChamp].value=document.forms[NomForm].NomAutreChamp.value;"



Voila ;o)
1
J'ai pas essayé, mais tu dois pouvoir faire une fonction JS en onsubmit qui regarde si le contenu est 'rien' sinon qui submit le formulaire.

Vive le Franglais...
0
Utiliser les javascripts est une piste interressante. J'ai trouver quelque chose qui, je pense, devrai fonctionner mais ce n'est pas le cas.
Je vous explique :

Les 3 cas : (C'est un formulaire de modification des données)

-> L'utilisateur peut TOUT modifier (ou que la photo) s'il le souhaites, pour cette action : pas de prob.

Ce sont les deux cas suivant que je n'arrive pas à distinguer à l'aide d'une condition.

-> L'utilisateur ne modifi pas la photo mais peut toujours modifier tout le reste.
-->> M'on idée est de récuperer le contenu du input file : s'il n'a pas préciser de doc ET rien d'autre alors la photo ne doit pas être modifier.

-> L'utilisateur veut supprimer la photo tou en modifiant ou non les autres infirmation.
-->> L'utilisateur met quelque chose dans l'input file du genre "supp" ou "rien" ou tout ce qu'il veut du moment que c'est pas l'adresse d'un fichier. Et dans ce cas on supprime l'image.


L'idées que j'ai avec le javascript est comme le disait Edouard d'agir au moment du submit. Seulement le traitement de toutes les information se fait aprés l'envoie et d'un facon trés particulière. Au moment du submit il faudrai que change le contenue d'un input hidden don je me sert pour passer l'addresse de la photo sur le serveur et LA ce serai parfai.

Bref, il faut que je récupère dans ce champ hidden ce que l'utilisateur à mis dans le champ input.

voici mon code JS:

$aff.='<input type="submit" class="bouton" name="submit" value="Modifier" onsubmit="document.forms["form'.$cpt_form.'"]'.$toph[0].'.value=document.forms["form'.$cpt_form.'"]'.$toph[0].'_toph.value;">';


qui apparai en html comme ceci :

<input type="submit" class="bouton" name="submit" value="Modifier" onsubmit="document.forms["form1"]Photo_News.value=document.forms["form1"]Photo_News_toph.value;">


mais sa ne marche pas :o{
L'affectaion de valeur ne se fait pas... Pourquoi :o{{{{{{ ???
0
Je viens de penser à quelque chose de tout simple :
Tu ajoute un champs hidden 'actionphoto' avec pour valeur par exemple 'idem'
tu mets un evenement onfocus (pas sûr, sinon onclick) sur le champs input file donc quand la personne cliquera dans le champs input file tu lance une fonction js qui affecte au champs hiddent 'actionphoto' la valeur 'modifié' à la place de idem.

Ensuite tu récupère tout ça en php lors du traitement du formulaire, si actionphoto =idem tu ignore et ne traite pas ce champs, sinon tu le traite...

Tout con !
0