02. september 2005 - 14:58Der er
8 kommentarer og 1 løsning
Tjekke om indtastning findes i Access db
Jeg ønsker at checke om en indtastet værdi findes i en access database. Feltet i databasen er (Initialer)- hvordan? F.eks. if ((minform.Initialer.value== "& Initialer &" )) { window.alert("Du er allerede registret i databasen"); minform.Initialer.focus(); cansubmit=false; return false; } Hvad er den korrekte syntaks for ovennævnte?
Du er mao. nødt til at submitte din from og så tjekke i mod databasen. Dette kræver enten ASP eller PHP (eller noget helt tredje). Hvilke muligheder har du til din rådighed?
-- hvis det skal laves i javascript, skal den relevante information være til stede i klienten, når indtastningen foretages, f.eks. ved at kaste det i en javascript-'database', dvs. et array, som man kan checke op imod !-)
-- og følsomheden kan selvfølgelig være tilstede, men oftest vil jeg gætte på, at det egentligf handler om et simpelt check, som man ligesågodt kan stille til rådighed uden at involvere serveren ...
-- læg checks så tæt, som fornuftigt muligt, på brugeren !o]
roenving> Nu var det jo ikke specielt initialer jeg tænkte på da jeg nævnte ”store datamængder” - det var mere princippet jeg filosoferede over.
Datamængden mht. initialer afhænger dog nok ret kraftigt af hvilket site vi snakker om. F.eks. ville jeg da ikke anbefale strategien til et site som Dating.dk (eller Eksperten.dk for den sags skyld). Selvfølgeligt bør man lægge valideringer så tæt på brugeren som muligt, nemlig i klienten, men kodeordet er i denne sammenhæng ”som fornuftigt muligt”. (Og som du selv lige så ofte påpeger, så betyder det på ingen måde at man spare serverside valideringen væk af den grund.)
d8tv> Under alle omstændigheder kan denne opgave ikke løses udelukkende i JavaScript. Der skal noget serversidescript til for at man man trække data id fra databasen. At domme efter det &-tegn som har sneget sig ind i din kode, så gætter jeg på at vi snakker ASP+VBScript.
Et muligt JavaScript kunne se sådan her ud:
function validateInit() { initFraDb = new Array("d8tv","nielle","roenving") init = minform.Initialer.value.toLowerCase()
for (i=0; i<initFraDb; i++) { if (init == initFraDb[i]) { window.alert("Du er allerede registret i databasen") minform.Initialer.focus() cansubmit = false return false } }
return true }
Her er det altså din ASP-kode som skal danne arrayet sådan at det bliver en del af JavaScript-koden.
Jeg har konverteret initialerne til lowercase – ellers kunne man hurtigt få flere versioner af di samme initialer. Desuden ville det være en god ide at trimme initialerne for mellemrum foran og bagefter før at man laver sammenhængen.
Hej Nielle Undskyld den lange svartid. Jeg har ikke brugt scriptet, men det kan sikkert bruges. Hvis jeg skal checke en værdi i en eksisterende database, må jeg kigge på en asp-løsning. Ellers tak for hjælpen. Hilsen d8tv
Tjah, jeg ville jo synes, at det var rimeligt at aflevere (i hvert fald nogle !-) point som tak for indsatsen, og derudover har du vel også fået en anelse mere fod på, hvad det er du skal gøre, så du faktisk har fået noget ud af kommentarerne !o]
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.