11. oktober 2005 - 13:23Der er
9 kommentarer og 1 løsning
ikke- obigatoriske felter i formular
Hej Jeg har lavet en formular der via en asp side tilføjer data til en acces database. Jeg har i databasen defineret nogle felter til ikke at være obigatoriske, men hvis jeg ikke udfylder feltet i min formular, vil asp'en ikke virke. Hvordan kan man definere felterne i asp siden til ikke at være obligatoriske? felterne i asp'en fanges med Request.form("navn")
Der kan du måske bruge en strategi som går på at du kun indsætter/opdaterer felterne i database (via din SQL), hvis feltet er defineret i request.form.
Noget i stil med dette:
SQL = "INSERT INTO tabel(" if not isempty(request.form("felt1")) then strSQLFields = "felt1" strSQLValues = "'" & request.form("felt1") & "'" end if if not isempty(request.form("felt2")) then if len(strSQLFields) > 0 then strSQLFields = strSQLFields & "," end if strSQLFields = strSQLFields & "felt2" if len(strSQLValues) > 0 then strSQLValues = strSQLValues & "," end if strSQLValues = strSQLValues & "'" & request.form("felt2") & "'" end if
...osv.
Man kan naturligvis lave en funktion som gør koden mere læsbar.
I øvrigt skal der nok også laves et check på om der overhovedet er nogle felter at opdatere, men der er jo stadig et stykke vej fra idé til virkelighed her...
Jeg forsøgte blot at skitsere en metode, men kan godt se at den ikke var gjort helt færdig... :)
ok. En udemærket ide som jeg da vil afprøve og jeg takker mange gange for svaret. Skal du i øvrigt skrive det som et svar for at jeg kan tildele point? (Jeg er ny i dette forum)
Jeg er dog af den holdning at du ikke skal give point før din udfordring er løst, så jeg synes bare du skal prøve at se om du kan få det til at fungere. Så kan du jo spørge til herinde indtil det fungerer - og derefter give point... :)
Der skulle gerne være felter at opdatere, ellers er der vel ikke nogen grund til at have en database... ;-)
Jeg kom til at tænke på om jeg har skudt ved siden af dit behov...? Det lyder snarere som om du skal tillade tomme værdier i dine felter i databasen, frem for at lave en masse check i ASP-siden. Kan du evt. vise hvad du har af kode indtil nu?
Start dato </td> <td><input type="text" name="startdato" maxlength="20"> </td> <td> Start tidspunkt </td> <td><input type="text" name="starttid" maxlength="20"> </td> </tr>
<tr><td> Slut dato </td> <td><input type="text" name="slutdato" maxlength="20"> </td> <td> Slut tidspunkt </td> <td><input type="text" name="sluttid" maxlength="20"> </td> </tr>
Dette er den asp der behandler oplysninger fra formularen:
<%
'Dimension variables Dim adoCon 'Holds the Database Connection Object Dim rsAddComments 'Holds the recordset for the new record to be added to the database Dim strSQL 'Holds the SQL query for the database
Set adoCon = Server.CreateObject("ADODB.Connection") adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("vikardatabasen.mdb") Set rsAddComments = Server.CreateObject("ADODB.Recordset")
Jeg lukker spørgsmålet, da jeg har fundet en løsning. Jeg får formularen til at sætte et 0 ind hvis der ikke er indtastet noget.
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.