Salut a tous,
J'ai un formulaire qui ajoute un contenu dans une base de données. Lorsque je clique sur le bouton, j'appel une fonction ajax qui appelle une seconde page coldfusion dans laquel j'insere mes données et je les affiche dans un tableau 'sans rafraichir la page donc.) jusque la tout va bien.
Ensuite, je souhaite dans ce meme formulaire mettre un champs file pour faire un upload.
Je n'arrive pas a uploader mon fichier car je ne sais pas comment récupérer mon form.upload dans la page appellé par ajax.
Je vous donne mon code ajax,
Jusque la, je doit découper mon postSendProduct car je n'arrive pas a le decouper pour donner : form.produit, form.description et form.upload.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function Add_Product(ProduitEnCour){ var upload = document.forms["FormProduct"].elements["UPLOAD"].value; var produit = "" var Description = "" Description = document.forms["FormProduct"].elements["DESCRIPTIONEN"].value; produit = document.forms["FormProduct"].elements["PRODUIT"].value; var postSendProduct = ""; var postUpload = ""; httpReponse.open('post', 'script/add_associed_product.cfm'); httpReponse.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); httpReponse.onreadystatechange = handleResponseReponseProduct; postSendProduct += "form.PRODUIT="+produit + "/" + Description + "/" + ProduitEnCour + "/form.upload="+upload; httpReponse.send(postSendProduct); } function handleResponseReponseProduct(){ //alert(httpReponse.status); //alert(httpReponse.readyState); if(httpReponse.readyState == 4 && httpReponse.status == 200){ var lst_response = httpReponse.responseText; if(lst_response.length > 0){ document.getElementById('Produit_associe').style.display = 'block'; document.getElementById('Produit_associe').innerHTML = lst_response; } } }
mon code coldfusion :
C'est la maniere que j'utilise habituellement pour faire de l'upload et la je n'y arrive pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <cfoutput> <cfset Produit = listgetat(#FORM.PRODUIT#,1,"/")> <cfset Description = listgetat(#FORM.PRODUIT#,2,"/")> <cfset ProduitEnCour = listgetat(#FORM.PRODUIT#,3,"/")> <cfset Upload = listgetat(#FORM.PRODUIT#,4,"/")> <cfinclude template="../../includes/variables.cfm"> <cffile action="upload" destination="#application.Dir_Upload#" filefield="FORM.UPLOAD" nameconflict="makeunique"> <cfquery name="Add_Produit_Associe" datasource="#APPLICATION.DSN#"> INSERT INTO PRODUIT_ASSOCIE (PRODUIT_ASSOCIE_ID,PRODUIT_ID,DES_EN) VALUES (#Produit#,#ProduitEnCour#,'#DESCRIPTION#') </cfquery> ...Je genere mon tableau...
Pouvez vous maider?
Merci d'avance.
Cordialement
Mael
Partager