Avatar billede bogologo Nybegynder
07. oktober 2005 - 17:58 Der er 16 kommentarer og
1 løsning

form method post vs get

meget kort sagt handler det om at jeg har en formular med nogle tekstfelter der skal skrives til en databse og samtidig vil jeg uploade et billede...

hvis jeg bruger get i min formular kan jeg få den til at skrive felterne til databasen, men filen kommer ikke med når jeg bruger get.

og omvendt hvis jeg bruger post, så bliver filen uploadet, men felterne ikke skrevet til databasen.

så mit spørgsmål går på om man kan "snyde" med sin formular på en måde så begge dele kan lade sig gøre i samme formular, eller om man er nødt til at lave 2 selvstændige formularer?
Avatar billede Slettet bruger
07. oktober 2005 - 18:26 #1
En form burde ellers sagtens kunne både sende et billede og tekst samtidig - det har jeg i hvertfald selv en form der gør, dog lavet i PHP :)

Er du sikker på, at du gør det rigtigt? Uden at kende noget til ASP, gætter jeg på der er forskel på om servervariablerne hedder det samme for GET og POST.

--
pacroon
Avatar billede erikjacobsen Ekspert
07. oktober 2005 - 19:02 #2
Du skal bruge POST, og du skal aflæse dine felter med din upload-komponent. Hvis den hos dig hedder upload, så er det  upload.form("feltnavn")
Avatar billede bogologo Nybegynder
07. oktober 2005 - 19:50 #3
problemet er ikke umiddelbart at aflæse felterne. bruger Request.querystring til at hente mine tekstfelter. og det virker fint så længe jeg bruger GET.

det er den måde jeg er vant til at hente dem på f.eks.

adoID = Request.querystring("ProdID")

hvordan skulle jeg så hente den ellers?

adoID = upload.form("ProdID")

således? skulle det så virke med POST?
Avatar billede bogologo Nybegynder
07. oktober 2005 - 20:20 #4
hvis jeg bruger: Request.Form("ProdID")

så ser det ikke ud til at virke, den får ikke overført  noget når jeg bruger det, ser det ud til.

ved ikke om det har noget at sige at den server der kører det er til SUN ASP

men så'en noget som Request.Form burde det vel ikke have nogen problemer med
Avatar billede bogologo Nybegynder
07. oktober 2005 - 20:25 #5
nu fik jeg det så til at virke ved at fjerne nedenstående fra min form.

ENCTYPE="multipart/form-data"


men nu påstår den så bare at mit FILE felt ikke indeholder noget?
Avatar billede erikjacobsen Ekspert
07. oktober 2005 - 20:28 #6
Skal du uploade filer, skal du bruger ENCTYPE="multipart/form-data"
Har du forstået hvad jeg skrev: 19:02:47 ?
Ellers vis os din kode - ellers får du næppe mere hjælp.
Avatar billede bogologo Nybegynder
07. oktober 2005 - 20:31 #7
Formular:--

        <form action="edit-prod-do.asp" method="post" ENCTYPE="multipart/form-data">
        <input type="hidden" class="text" name="ProdID" value="<% = adoRS.Fields ("ProdID")%>">
        <input type="hidden" class="text" name="Img" value="<% = adoRS.Fields ("Img")%>">
        <input type="hidden" class="text" name="TypeID" value="<% = Request.QueryString("TypeID")%>">
            <b>Rediger tekst:</b><br>
            <p><b>Titel:<br>
            <input type="text" class="text" name="Title" size="20" value="<% = adoRS.Fields ("Title")%>"></b></p>
            <p><b>Tekst:<br>
            <textarea class="text" rows="10" name="Desc"><% = adoRS.Fields ("Desc")%></textarea></b></p>
            <p><b>Billede:<br>
            <p><b>Pris:<br>
            <input type="text" class="text" name="Price" size="20" value="<% = adoRS.Fields ("Price")%>"></b></p>

            <input type="FILE" class="text" name="FILE"></b></p>
            <p><input class="button" type="submit" value="Ret">&nbsp;&nbsp;&nbsp; <input type="button" class="button"onClick="java script:self.history.go(-1)" value="Anuller"></p>
        </form>


edit-prod-do.asp:---

<!--#include file="database.asp"-->
<!--#include file="protect.asp"-->

<%
dim adoRS
dim adoID
dim adoTitle
dim adoDesc
dim adoPrice
dim adoImg

adoID = Request.Form("ProdID")
adoTitle = Request.Form("Title")
adoDesc = Request.Form("Desc")
adoPrice = Request.Form("Price")
adoImg = Request.Form("Img")

Set adoRS = Server.CreateObject ("ADODB.Recordset")
adoRS.Open "SELECT * FROM prod WHERE ProdID = '" & adoID &"'", adoConn

strSQL = "UPDATE prod set "
strSQL = strSQL & "`Title` = '"&adoTitle &"', "
strSQL = strSQL & "`Desc` = '"&adoDesc &"', "
strSQL = strSQL & "`Price` = '"&adoPrice &"', "
strSQL = strSQL & "`Img` = '"&adoImg &"' "
strSQL = strSQL & "WHERE ProdID = "&adoID&""

adoConn.Execute(strSQL)

Response.Expires = 0
Set fbase = Server.CreateObject("Chili.Upload.1")
fbase.SizeLimit = 100000
fbase.SaveToFile(Server.mapPath("/") & "/images/prod" & "/" & adoImg & ".jpg")


adoConn.Close
Set adoConn = Nothing

%>
Avatar billede erikjacobsen Ekspert
07. oktober 2005 - 20:33 #8
Så bruger du

  adoID = fbase.Form("ProdID")
  'etc.

OG husker at lave den først i dit script.
Avatar billede erikjacobsen Ekspert
07. oktober 2005 - 20:34 #9
Altså:
  Set fbase = Server.CreateObject("Chili.Upload.1")
før du skal bruge fbase.
Avatar billede bogologo Nybegynder
07. oktober 2005 - 20:35 #10
så får jeg bare en:

Error Type:
Sun ONE ASP VBScript runtime (0x800A01A8)
Object required: 'fbase'
Avatar billede bogologo Nybegynder
07. oktober 2005 - 20:36 #11
Set fbase = Server.CreateObject("Chili.Upload.1")

gir:
Sun ONE ASP VBScript runtime (0x800A01B6)
Object does not support this property or method: 'Form'
Avatar billede erikjacobsen Ekspert
07. oktober 2005 - 20:47 #12
Ja, den hedder vist FormData og ikke Form, hvis ellers ASP versionen er ny nok (ASP 4.0 ...?)

Før den har jeg ingen anelse om hvad man gør.
Avatar billede bogologo Nybegynder
07. oktober 2005 - 23:58 #13
Det virker til syneladende med at overføre felterne, ved at bruge FormData.

men den siger til gengæld at formularen ikke inderholder en fil
Avatar billede erikjacobsen Ekspert
08. oktober 2005 - 00:04 #14
Jeg kender ikke nok til det, så vent på nogen der kender Suns ASP eller b-one
Avatar billede bogologo Nybegynder
08. oktober 2005 - 00:10 #15
så lykkedes det sq tror jeg... næsten i hvert fald, nu skal jeg bare lige ha fundet ud af hvordan jeg sætter den til bare at overskrive filen hvis der ligger en i forvejen, og så hvad den skal gøre hvis der ikke bliver uploadet en fil....

men takker for hjælpen, smid et svar så ka du få nogen point
Avatar billede erikjacobsen Ekspert
08. oktober 2005 - 09:32 #16
Nej tak.
Avatar billede bogologo Nybegynder
08. oktober 2005 - 13:12 #17
oki, lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester