PercyMedlem sedan mars 2000187 inlägg Hej!
Har en lång if-sats som kollar så att användaren uppfyller vissa kriterier innan den får registrera sig. Koden känns dock ganska lång och klumpig, det kanske finns ngt mkt bättre sätt att skriva på? göra den till en funktion också?
Hur skulle LarsG och ni andra göra? :-)
If Len(DeliverySurname) < 1 Then
session("empty") = "Du måste ange ett förnamn"
pass = "no"
ElseIf Len(DeliveryLastname) < 1 Then
session("empty") = "Du måste ange ett efternamn"
pass = "no"
ElseIf Len(DeliveryStreetname) < 1 Then
session("empty") = "Du måste ange en gatuadress"
pass = "no"
ElseIf Len(DeliveryZipcode) < 1 Then
session("empty") = "Du måste ange ett postnummer"
pass = "no"
ElseIf Len(DeliveryCity) < 1 Then
session("empty") = "Du måste ange en postadress"
pass = "no"
ElseIf Len(phone) < 1 Then
session("empty") = "Du måste ange ett telefonnummer"
pass = "no"
ElseIf Len(email) < 1 Then
session("empty") = "Du måste ange en e-postadress"
pass = "no"
ElseIf Len(password1) < 1 Then
session("empty") = "Du måste ange ett lösenord"
pass = "no"
ElseIf Len(password1) < 6 Then
session("empty") = "lösenordet måste innehålla minst 6 tecken"
pass = "no"
ElseIf Len(password2) < 1 Then
session("empty") = "Du måste bekräfta lösenordet"
pass = "no"
ElseIf NOT password1 = password2 Then
session("empty") = "lösenorden matchar ej varandra"
pass = "no"
Else
strEmail = "SELECT email FROM tb_customer WHERE email = '" & email & "'"
Set objEmail = Connection.Execute(strEmail)
IF NOT objEmail.EOF Then
session("empty") = "E-postadressen är upptagen"
pass = "no"
End If
End If
tack på förhand
CatZMedlem sedan jan. 20022 440 inlägg Men funkar inte den utmärkt ? :) Samma sätt som jag själv skulle gjort det på men den känns "klumpig" som du säger ;)
PercyMedlem sedan mars 2000187 inlägg den fungerar, dock vill ha försöka optimera den. hur gör jag för att göra den till en funktion? lr är det en sub jag ska göra? har inte riktigt koll på d..
ToonsterMedlem sedan feb. 20001 590 inlägg Vad händer om flera fält i formuläret inte är ifyllda?
Även om du gör en funktion, så kommer den att innehålla stort sett samma kod.
/T
solbulleMedlem sedan mars 20015 287 inlägg Precis, vad händer om flera fällt inte är ifyllda? Nu klagar väl det scriptet bara på det första felet den hittar?
PercyMedlem sedan mars 2000187 inlägg japp, sant, hade gärna velat ha att den postar tillbaks allt igen och visar alla de fält som inte är korrekt ifyllda med någon sorts "errorcode"
ngn duktig som har ngt förslag hur man gör d?
alltså, de värden som är ifyllda innan man postar formuläret kommer fortfarande vara ifyllda precis som nu, skillnaden är att jag vill att den skriver ut ex. "du måste fylla i blablabla" till höger om resp. textruta som inte är korrekt ifylld.
solbulleMedlem sedan mars 20015 287 inlägg För att få med dig alla felaktigheter kan du kanske göra något likt detta: (Dock löser inte det din andra ide med en pekning på rätt fält.)
Dock om du väljer att kolla med javascript så kan du ju lätt kolla vilket fält som är tomt och ställa markören där.
If Len(DeliverySurname) < 1 Then
empty = "Du måste ange ett förnamn"
pass = "no"
End If
If Len(DeliveryLastname) < 1 Then
empty = empty & "Du måste ange ett efternamn"
pass = "no"
End If
'osv
session("empty") = empty
PercyMedlem sedan mars 2000187 inlägg ok, tack men jag vill ha det så som jag tidigare beskrev dvs
loopa igenom alla formfields och till de obligatoriska fält som inte är ifyllda rätt genereras en felkod.
denna borde man väl kunna lagra i hiddenfields istället för att använda sig av en session? (spara på kapacitet)
PercyMedlem sedan mars 2000187 inlägg LarsG, var är du då man behöver din hjälp???
lr finns d ngn annan kunnig person som kanske kan bidra m ngt i kodväg?
stort tack!
PaceMedlem sedan juni 20019 024 inlägg Sådär, det enda du behöver är ändra är två matriser (arrRequiredFields som innehåller de fältnamn som ska kontrolleras samt arrRequiredFieldsErrors som innehåller det felmeddelande som ska visas för det fältnamnet som ligger i samma index).
intIndex = 0
[red]arrRequiredFields = Array("DeliverySurname", "DeliveryLastname", "DeliveryStreetname")
arrRequiredFieldsErrors = Array("Förnamn saknas", "Efternamn saknas", "Gata saknas")[/red]
For Each Var In arrRequiredFields
If Len(Request.Form(Var)) < 1 Then
strErrorMessages = strErrorMessages & "<LI>" & arrRequiredFieldsErrors(intIndex)
intIndex = intIndex + 1
Next
If strErrorMessage <> "" Then
Session("empty") = strErrorMessages
End If
CatZMedlem sedan jan. 20022 440 inlägg
Pace skrev:
Sådär, det enda du behöver är ändra är två matriser (arrRequiredFields som innehåller de fältnamn som ska kontrolleras samt arrRequiredFieldsErrors som innehåller det felmeddelande som ska visas för det fältnamnet som ligger i samma index).
intIndex = 0
[red]arrRequiredFields = Array("DeliverySurname", "DeliveryLastname", "DeliveryStreetname")
arrRequiredFieldsErrors = Array("Förnamn saknas", "Efternamn saknas", "Gata saknas")[/red]
For Each Var In arrRequiredFields
If Len(Request.Form(Var)) < 1 Then
strErrorMessages = strErrorMessages & "<LI>" & arrRequiredFieldsErrors(intIndex)
intIndex = intIndex + 1
Next
If strErrorMessage <> "" Then
Session("empty") = strErrorMessages
End If
Var ska jag placera denna lilla kodsnutt för att få det att fungera ?