28. juli 2004 - 11:17Der er
12 kommentarer og 1 løsning
Forhindre at tomme felter i <form> bliver til en tom række i DB
Hejsa.
Jeg har en formular på min webside, som gemmer indtastede data i en Access-database. Og alting virker fint.
MEN: Hvis man IKKE indtaster noget i felterne, og klikker på "Send"-knappen, oprettes en tom række i databasen. Og det skal der jo ikke.
Ligger fejlen her? Jeg har også et skjult felt, som altid aflæser tiden: <input type="hidden" name="tid" id ="tid" value="<%=Now%>"> Derfor vil databasen også opfange disse data. Men det skal den jo IKKE, når der ikke er indtastet noget i de andre indtastningsfelter, vel? Det er dér problemet ligger, tror jeg! *suk*
Du kunne jo lave et tjek på felterne i formularen om de er tomme. Og hvis der står noget udfører du din indsæt i databasen og ellers laver du en alert der beder om at felterne udfyldes f.eks.
Ja, men jeres forslag går ud på, at man SKAL indtaste et eller andet i felterne. Ellers popper der en JavaScript-allertbox op, om at man skal indtaste noget i felterne, før data bliver sendt til databasen, ikke også?
Denne løsning har jeg også tænkt på tidligere, men hør her: Jeg har 2 formularer på samme webside, hvorfor JavaScript-allertbox-løsningen ikke kan bruges.
Du behøver jo ikke lave det med javascript, det kan laves helt i asp. Jeg ville lave noget i stil med: If feltnavn = "" Then //do nothing Else //Din sql med INSERT eller UPDATE her End if
Synes godt om
Slettet bruger
28. juli 2004 - 12:10#6
Ok, en if/else. Ja, det kan jeg overordnet godt se. Det lyder som det helt rigtige! :-)
Men... jeg er altså helt nybegynder på dette felt... Så hvorhenne skal jeg indsætte den if/else? Og hvordan skal den skrives korrekt, så den virker?
Her er mine koder:
<% ' Dansk datoformat : Session.LCID = 1030
' Databaseforbindelse + sti til databasen : Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("test.mdb") Conn.Open DSN
' SQL forespørgsel : strSQL = "Select * from kommentar order by id desc"
' Udfør forespørgsel (rs indeholder nu resultatet) : Set rs = Conn.Execute(strSQL)
Det kan godt være jeg er blind, men jeg kan altså ikke se den del af koden hvor du indsætter i databasen eller din form.?. Det er i den del der skal en if/else ind.
Jeg ville lave en validering inden din form bliver submittet, ved hjælp af javasript.
Som fx. dette:
<script language="javascript"> <!-- function checkFormContact( frm ){
var navn = frm.navn.value; //txt-felt var mail = frm.mail.value; //txt-felt til e-mail validering var emne = frm.emne.value; //txt-felt var txt = frm.txt.value; //txt-felt
var err = "";
//txt-felt validering (navn.length == 0 )?err+="* Husk at skrive dit navn!\n":void(null); //e-mail validering (mail.indexOf("@") < 0 )?err+="* E-mail adressen mangler eller er ugyldig!\n":void(null); //txt-felt validering (emne.length == 0 )?err+="* Husk at skrive et emne!\n":void(null); //txt-felt validering (txt.length == 0 )?err+="* Du kan ikke sende en tom besked!\n":void(null);
Hej ... må jeg stille et tillægsspørgsmål! skal nok oprette points... Hvad hvis man skal validere at det intastede er en dato???
wraber
Synes godt om
Slettet bruger
17. november 2004 - 16:11#11
Hejsa igen, eagleeye.
Jeps, efter lidt tumult med en ny ADSL-forbindelse er jeg online igen!
wraber & webbe: Hvis I har tid, lyst og mulighed for det, må I meget gerne lægge et eller andet som et svar, så jeg kan tildele jer points for jeres tid og svar.
Igen: Tak for hjælpen!
Synes godt om
Slettet bruger
17. november 2004 - 16:12#12
Venligst se bort fra den første linie: "Hejsa igen, eagleeye". Bare en copy and paste-fejl. :-)
Synes godt om
Slettet bruger
31. december 2004 - 00:26#13
Nå, men jeg bliver nødt til at afslutte spørgsmålet nu, så jeg må tildele points den eneste person som har lagt et svar.
Men wraber og/eller webbe skulle komme forbi, så læg lige et svar, så jeg kan tildele jer points, på den ene eller anden måde.
Tak til jer alle for jeres indsats!!! :-)
Synes godt om
Ny brugerNybegynder
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.