Avatar billede webbygger Nybegynder
29. august 2007 - 23:35 Der er 10 kommentarer og
1 løsning

Roder rundt i en chek sætning

Hej,

Må være meget træt, da denne sætning driller

if  kategori="" or produkt="" or beskriv="" or not isNumeric(karakter)  then
  Response.Write "Fejl i indtastningen." or  <----- "dette or vil den ikke æde"
if  navn=""  then
  Response.Write "Du er ikke logget på."
Avatar billede steen_hansen Forsker
29. august 2007 - 23:44 #1
Den OR har heller ikke noget at gøre i enden på en Response.Write :) Hvis du har flere sande/falske udsagn, skal det stilles op på en anden måde.
Avatar billede xicrow Nybegynder
29. august 2007 - 23:45 #2
Mon ikke det skal skrives sådan her:
<%
if  kategori="" or produkt="" or beskriv="" or not isNumeric(karakter)  then
  Response.Write "Fejl i indtastningen."
elseif  navn=""  then
  bla bla bla
end if
%>
Avatar billede Slettet bruger
29. august 2007 - 23:46 #3
hvad er det helt præcist du vil?

hvad med
if (kategori="" or produkt="" or beskring="" or isnumeric(karakter)=False) then
response.write "fejl i indtastningen."
elseif navn="" then
response.write "Du er ikke logget på."
end if

- du kan ikke have en "or" i din response-sætning

en lidt bedre udgave kunne måske være:

if ((kategori="" or isnull(kategori)=True) or (produkt="" or isnull(produkt)=True) or (beskriv="" or isnull(beskriv)=True) or isnumeric(karakter)=False) then
response.write "fejl i indtastningen."
elseif (navn="" or isnull(navn)=True) then
response.write "Du er ikke logget på."
end if

\Dan
Avatar billede cpufan Juniormester
30. august 2007 - 09:59 #4
der kan ikke bruges or i if

men gør sådan:
fejl = ""
if kategori="" then fejl = "Fejl i indtastningen"
if beskriv="" then fejl = "Fejl i indtastningen"
if not isnumeric(karakter) then fejl = "Fejl i indtastningen"
if fejl <>"" then response.write fejl
if navn&"" = "" then response.write "Du er ikke logget på"
Avatar billede webbygger Nybegynder
30. august 2007 - 17:33 #5
Jeg er ved at flette mit script ind i SkyPortal sider og ved denne lejlighed "prøver" jeg på at opdatere script lidt!
Nu er jeg ikke nogen ørn ved dette angår, men der er noget der siger mig, at jeg har en doble chek for korrekt indtastning på mitscript:

set Conn = Server.CreateObject("ADODB.Connection")
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("grejanmeldelse/jerg.mdb")
  Conn.Open strConn
 
 

  'henter form felterne
  navn = Replace(mySmartUpload.form("navn"),"'","''")
  kategori = Replace(mySmartUpload.form("kategori"),"'","''")
  produkt = Replace(mySmartUpload.form("produkt"),"'","") 
  pris = Replace(mySmartUpload.form("pris"),"'","")
  karakter = Replace(mySmartUpload.form("karakter"),"'","")
  mail = Replace(mySmartUpload.form("mail"),"'","''")
  url = Replace(mySmartUpload.form("url"),"'","''")
  ture = Replace(mySmartUpload.form("ture"),"'","''")
  beskriv = Replace(mySmartUpload.form("beskriv"),"'","''")
 
  beskriv = Replace(beskriv,vbCrLf,"<br>")
  dato = Replace(mySmartUpload.form("dato"),"'","''")
  billede = streng ' notat
 
if  kategori="" or produkt="" or beskriv="" or not isNumeric(karakter)  then
  Response.Write "Fejl i indtastningen." or  <----- "dette or vil den ikke æde"
if  navn=""  then
  Response.Write "Du er ikke logget på."
 
  Response.End
else
  'kolonne typerne : navn :tekst, dato :date/time, karakter :tal, beskrivelse :notat/tekst
  sql = "insert into anm (MEMBER_ID, kategori, produkt, pris, karakter, url, ture, beskrivelse, dato, billede  ) values ("
  sql = sql & "'" & navn & "', "
  sql = sql & "'" & kategori & "', "
  sql = sql & "'" & produkt & "', "
  sql = sql & "'" & pris & "', "
  sql = sql & "" & karakter & ", "
  sql = sql & "'" & url & "', "
  sql = sql & "'" & ture & "', "
  sql = sql & "'" & beskriv & "', "
  sql = sql & "'" & day(now) & "-" & month(now) & "-" & year(now)  & "', "
  if billede = "" then
  sql = sql & " Null "
  else
  sql = sql & "" & billede & ""
  end if
  sql = sql & ")"

response.write sql


 
 

  Conn.Execute(sql)
  Conn.Close
  Set conn=nothing
 
  Response.redirect "anmeldelse.asp" 
end if
end if 
%>
    <script>

function validate(theform) {
   
  if(theform.kategori.value=='' || theform.kategori.value=='---') {
    alert ('Kategori skal vælges');
    return false;
  }
  if (theform.produkt.value=='') {
    alert ('Produkt skal udfyldes');
    return false;
  }
  if (theform.navn.value=='') {
    alert ('Du er ikke logget på');
    return false;
  }
  str = theform.karakter.value;
  if(!str.match(/^(\d)+$/i)) {
    alert ('Karakter skal udfyldes og være et tal');
    return false;
  }
     
  if(theform.beskriv.value=='') {
    alert ('Beskrivelse skal udfyldes');
    return false;
  }
  if (theform.ture.value=='') {
    alert ('Testtur skal udfyldes');
    return false;
  }

  return true;
}
</script>

Jeres overstående løsninger kommer op med en fejl med "end if" i forskellige linier!
Avatar billede cpufan Juniormester
30. august 2007 - 20:00 #6
jeg vil lige rette mig, man kan godt bruge or i en if-sætning:

if noget ="" or nogetandet ="" then
end if

jeg blandede det sammen med

if noget ="1" or "2" som ikke er korrekt syntax
Avatar billede cpufan Juniormester
30. august 2007 - 20:02 #7
set Conn = Server.CreateObject("ADODB.Connection")
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("grejanmeldelse/jerg.mdb")
  Conn.Open strConn
 
 

  'henter form felterne
  navn = Replace(mySmartUpload.form("navn"),"'","''")
  kategori = Replace(mySmartUpload.form("kategori"),"'","''")
  produkt = Replace(mySmartUpload.form("produkt"),"'","") 
  pris = Replace(mySmartUpload.form("pris"),"'","")
  karakter = Replace(mySmartUpload.form("karakter"),"'","")
  mail = Replace(mySmartUpload.form("mail"),"'","''")
  url = Replace(mySmartUpload.form("url"),"'","''")
  ture = Replace(mySmartUpload.form("ture"),"'","''")
  beskriv = Replace(mySmartUpload.form("beskriv"),"'","''")
 
  beskriv = Replace(beskriv,vbCrLf,"<br>")
  dato = Replace(mySmartUpload.form("dato"),"'","''")
  billede = streng ' notat
 
if  kategori="" or produkt="" or beskriv="" or not isNumeric(karakter)  then
  Response.Write "Fejl i indtastningen." 'or  <----- "dette or kan ignoreres nu er det udkommenteret så det ikke tæller med"
if  navn=""  then
  Response.Write "Du er ikke logget på."
 
  Response.End
else
  'kolonne typerne : navn :tekst, dato :date/time, karakter :tal, beskrivelse :notat/tekst
  sql = "insert into anm (MEMBER_ID, kategori, produkt, pris, karakter, url, ture, beskrivelse, dato, billede  ) values ("
  sql = sql & "'" & navn & "', "
  sql = sql & "'" & kategori & "', "
  sql = sql & "'" & produkt & "', "
  sql = sql & "'" & pris & "', "
  sql = sql & "" & karakter & ", "
  sql = sql & "'" & url & "', "
  sql = sql & "'" & ture & "', "
  sql = sql & "'" & beskriv & "', "
  sql = sql & "'" & day(now) & "-" & month(now) & "-" & year(now)  & "', "
  if billede = "" then
  sql = sql & " Null "
  else
  sql = sql & "" & billede & ""
  end if
  sql = sql & ")"

response.write sql


 
 

  Conn.Execute(sql)
  Conn.Close
  Set conn=nothing
 
  Response.redirect "anmeldelse.asp" 
end if
end if 
%>
    <script>

function validate(theform) {
   
  if(theform.kategori.value=='' || theform.kategori.value=='---') {
    alert ('Kategori skal vælges');
    return false;
  }
  if (theform.produkt.value=='') {
    alert ('Produkt skal udfyldes');
    return false;
  }
  if (theform.navn.value=='') {
    alert ('Du er ikke logget på');
    return false;
  }
  str = theform.karakter.value;
  if(!str.match(/^(\d)+$/i)) {
    alert ('Karakter skal udfyldes og være et tal');
    return false;
  }
     
  if(theform.beskriv.value=='') {
    alert ('Beskrivelse skal udfyldes');
    return false;
  }
  if (theform.ture.value=='') {
    alert ('Testtur skal udfyldes');
    return false;
  }

  return true;
}
</script>

'så skulle dine if'er og end if'er passe
Avatar billede webbygger Nybegynder
30. august 2007 - 20:26 #8
Pokkers også cpufan - det virker ikke!!!
Jeg tænkte på, om man ikke skulle opgiv If'er og så få

    <script>

function validate(theform) {
   
  if(theform.kategori.value=='' || theform.kategori.value=='---') {
    alert ('Kategori skal vælges');
    return false;
  }
  if (theform.produkt.value=='') {
    alert ('Produkt skal udfyldes');
    return false;
  }
  if (theform.navn.value=='') {
    alert ('Du er ikke logget på');
    return false;
  }
  str = theform.karakter.value;
  if(!str.match(/^(\d)+$/i)) {
    alert ('Karakter skal udfyldes og være et tal');
    return false;
  }
     
  if(theform.beskriv.value=='') {
    alert ('Beskrivelse skal udfyldes');
    return false;
  }
  if (theform.ture.value=='') {
    alert ('Testtur skal udfyldes');
    return false;
  }

  return true;
}
</script>

det her til at kører....
Avatar billede cpufan Juniormester
30. august 2007 - 20:34 #9
hvad får du af fejl?

og hvilken linie peger den på?
Avatar billede webbygger Nybegynder
30. august 2007 - 20:57 #10
Hej igen

Du finder siden her http://www.lystfiskerens.net/fisk/anmeldelse.asp

jeg har oprettet en bruger konto:

brugernavn: eksperten
password: hjælp

fejlen er i en incl fil - jeg får denne fejl:

Microsoft VBScript compilation  error '800a03f6'

Expected 'End'

/fisk/inc_footer.asp, line 133
Avatar billede cpufan Juniormester
30. august 2007 - 21:22 #11
expected end, kan komme meget længere nede end fejlen vitterlig er,

så det du skal gøre er at tjekke alle dine if -end if

det bedste er at tabulere ind hvis der er nogen inden i hinanden:

if 'første if

  if 'første indre
 
    if ' anden indre
    end if anden if slut
 
  end if 'første indre slut
end if første slut


så er det lettere at overskue
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester