Avatar billede web_freak Nybegynder
20. april 2005 - 11:42 Der er 19 kommentarer og
2 løsninger

Kontrol af form

Hvordan kan jeg kontrollere om hvert felt i en form er ændret.
Det som jeg vil, er at jeg henter værdien fra en database tabel ind i en form, denne form kan man submite og få opdateret tabellen i databasen, men jeg vil undgå at opdatere alle felter i databasen. Hvordan kan man lave denne kontrol.
Jeg havde prøvet at tage Request.Form("m2") != Request.Form("m2a"); hvor m2a er et hidden felt med den oprindelige værdi.
Men dette virkede ikke jeg fik en fejl 507(ASP)...
Så jeg har brug for hjælp...
Avatar billede busschou Praktikant
20. april 2005 - 11:45 #1
i asp hedder det ikk != men <> mener jeg
Men det burde da virke at sammenligne hvert felt med et hidden for at se om det er ændret og så opdatere der hvor det er ændret
Har du mere kode?
Avatar billede busschou Praktikant
20. april 2005 - 11:47 #2
og hvad siger den mere end 507 ? den må sige lidt mere
Avatar billede web_freak Nybegynder
20. april 2005 - 11:49 #3
Jeg prøvede lige at benytte <> men nu får jeg denne fejl.
JavaScript does not have a '<>' operator
Avatar billede web_freak Nybegynder
20. april 2005 - 11:49 #4
HTTP Error 507
507 Unexpected

The Web server encountered an unexpected error while communicating with the ASP service.

Please contact the server's administrator if this problem persists.
Avatar billede busschou Praktikant
20. april 2005 - 11:50 #5
javascript.. hmm kan du poste din kode?
Avatar billede web_freak Nybegynder
20. april 2005 - 11:52 #6
Koden ser således ud:
fra form:
<TR><TD>Baggrundensfarve: </TD><TD><INPUT TYPE=TEXT SIZE=15 style="background-image:url('net.jpg');" NAME=m2 VALUE='<%=Result.Fields('Underoverskrift1')%>'></TD>  <input type=hidden name=m2a  value='<%=Result.Fields('Underoverskrift1')%>'>
         

fra kontrol:
testx1 = Request.Form("m2");
testx1a = Request.Form("m2a");
if( testx1 != testx1a ) {
        Connect.Execute(x1);
}
Avatar billede busschou Praktikant
20. april 2005 - 11:54 #7
ok jeg forstår ikke det med operatoren. I al min kode i asp bruger jeg <> men måske er der forskel fra asp til asp ? ...
Avatar billede web_freak Nybegynder
20. april 2005 - 12:02 #8
Jeg plejer at bruge != og der virker det...
Avatar billede busschou Praktikant
20. april 2005 - 12:05 #9
ok det må en type asp jeg ikke kender så...kan desværre ikke hjælpe dig så
Håber en anden kan :o)
Ideen i det du gør er jo fin nok
Avatar billede fennec Nybegynder
20. april 2005 - 12:05 #10
Det er fordi du bruger JScript i ASP. Normalt bruger man VBScript.

Nu bruger jeg ikke JScript, men jeg mener du skal bruge en stringMatch funktion, når du skal sammenligne tekst. Jeg kan ikke huske komandoen, men det bliver noget i denne stil:

if(testx1.StringMatch(testx1a))

Hvor StringMatch skal være det rigtige funktionskald (som jeg ikke kan huske hvad hedder)
Avatar billede web_freak Nybegynder
20. april 2005 - 12:18 #11
Jeg prøvede med det som du skrev, men:
Sun ONE ASP JavaScript runtime (0x800A01B6)
Object doesn't support this property or method
Avatar billede fennec Nybegynder
20. april 2005 - 12:31 #12
StringMatch er IKKE det rigtige navn på funktionen. Som sagt ved jeg ikke hvad det rigtige nave på funktionen er.

Ellers må det være muligt at bruge .match() funktionen, man så skal den ene tekst laves om til et RegExp.
Avatar billede busschou Praktikant
20. april 2005 - 12:33 #13
Jeg kender heller ikke navnene men her er der da en guide til JScript hvis det er
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsoriJScript.asp
Avatar billede web_freak Nybegynder
20. april 2005 - 12:49 #14
Jeg har prøvet:
testx1 = "/" +  Request.Form("m2") + "/";
testx1a = Request.Form("m2a");
if(testx1a.match(testx1) != null) {
Connect.Execute(x1);
}
Men den skriver igen:
Sun ONE ASP JavaScript runtime (0x800A01B6)
Object doesn't support this property or method
Avatar billede web_freak Nybegynder
20. april 2005 - 13:45 #15
Jeg har løst problemet med følgende (car1 er bare en test var som jeg har brugt til at kontrollere if-sætningen:
testx1c = "" + Request.Form("m2") + "";
        testx1a = "" + Request.Form("m2a") + "";
        testx1b = testx1c.localeCompare(testx1a);
          if(testx1b == 0 ){
          car1=1;
        }
        else{
        car1=2;
        Connect.Execute(x1);
        }
Avatar billede web_freak Nybegynder
20. april 2005 - 13:46 #16
Hvis der nogen som kan gøre det bedre eller MEGET mindre så er pointsene stadig åbne.
Avatar billede web_freak Nybegynder
20. april 2005 - 14:24 #17
Så tror jeg ikke at den kan gøres mindre..... Men tak for hjælpen... Jeg lukke spørgsmålet..  busschou du har fortjent halvdelen

if(Request.Form("m10").localeCompare(Request.Form("m10a")) != 0 ){
Connect.Execute(x9);
}
Avatar billede web_freak Nybegynder
20. april 2005 - 14:25 #18
busschou du skal sende et svar.........
Avatar billede web_freak Nybegynder
20. april 2005 - 14:50 #19
svaret kl. 14:24:28 virkede ikke men, nu kan den også sammenligne to tomme strenge:
testx1c = "h" + Request.Form("m2") + "h";
        testx1a = "h" + Request.Form("m2a") + "h";
        testx1b = testx1c.localeCompare(testx1a);
          if(testx1b != 0 ){
          Connect.Execute(x1);
        out.WriteLine(x1 + ";");
        }
Avatar billede web_freak Nybegynder
20. april 2005 - 14:51 #20
Se bort fra:

out.WriteLine(x1 + ";");
Avatar billede busschou Praktikant
20. april 2005 - 14:53 #21
sorry var lige væk :o)
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