17. oktober 2003 - 12:57Der er
9 kommentarer og 1 løsning
Validering af formularfelt - database
Har følgende problemstilling. Når jeg validerer mine formularfelter gør jeg brug af javascript.
Nedenstående formularfelt skal dog sammenlignes med poster nede i min db, da nummeret ikke må eksistere i forvejen. Hvordan validerer jeg det brugeren har skrevet i nedenstående felt med indholdet i databasen. Hvis nummeret eksisterer i forvejen skal der komme en alert.
Jeg har lige klippet noget kode ud af min side så i kan se hvordan valideringen er opbygget. Der hvor jeg har sat en masse ? kunne jeg forestille mig man skulle sammenligne feltet med indholdet af databasen, men hvordan gør man lige det? Eller skal det laves på en hel anderledes måde? Tilgangen til databasen skal være med asp
Min søgestreng øverst på siden:
strSQL3 = "SELECT Halnr From Synssted" set recordSet3 = forbindelse.Execute (strSQL3)
Javascript-delen:
// Undersøger om nummer er optaget! function test(nummer) { ??????????????????
function validering(frm) { if(!test(frm.stednr.value)) {alert("nummeret er allerede optaget, vælg et andet...") frm.stednr.focus() return false }
// Undersøger om nummer er optaget! function test(nummer){ if(nummer=="<%=nummerDB%>"){ alert("nummer optaget"); } }
ellers hvis der er mange numre:
// Undersøger om nummer er optaget! nr=new Array(); <% i=0 while not rs.eof response.write("nr[i]="& rs("nummer") &";") i=i+1 wend %> function test(nummer){ for(i=0;i<nr.length;i++){ if(nummer==nr[i]){ alert("nummer optaget"); } } }
Nu fik jeg den til at gå i selvsving (ved ikke om det er noget med en uendelig løkke eller noget i den stil). Det ser ud som følger:
<% CONST adOpenStatic = 3, adLockReadOnly = 1, adCmdText = &H0001 Dim connectionString, CONN_USER, CONN_PASS Dim recordSet3 Dim forbindelse Dim strSQL3
Øv. Den driller stadig selv om jeg har ændret ovenstående linje. Når jeg åbner siden så står den bare og arbejder (og jeg må i kælderen for at genstarte serveren) :(
// Undersøger om nummer er optaget! nr=new Array(); <% i=0 while not recordSet3.eof response.write("nr["& i &"]="& recordSet3("Halnr") &";") rs.movenext i=i+1 wend %>
Så virker det næsten. Eneste problem er at hvis nummeret i databasen starter med 0 (så kommer den ikke med alerten at nummeret er optaget). Ved ikke lige hvorfor den skærer 0 fra). Mange af numrene har et 0 foran (eks. 010, 011, 012 osv.)
Har du et godt fif til dette problem (du skal nok få point selv om du ikke har)?
Under alle omstændigheder kan du lige lave et svar :)
selvfølgelig... Tusind takker for hjælpen. Du har snart hjulpet mig med mange ting :)
Jeg undervurderede måske nok spørgsmålet, men du må lige råbe op, hvis du vil have nogle flere point.
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.