Avatar billede l_otto Nybegynder
27. juni 2003 - 13:51 Der er 15 kommentarer og
1 løsning

opdatere et rettet felt uden at skulle trykke på en update knap

Jeg har en medarbejder database, hvor man kan oprette og rette medarbejder..

nu vil jeg gerne have at når man går i ret.medarbejder og rette i felter "fornavn" opdatere den det med det samme og ikke som nu først når jeg trykker på en knap se min kode..

hvad kan man gøre her ?

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

if request.form("update") <> "" then
strSQL = "update Kontaktpersoner set Fornavn='"&request.form("Fornavn")&"', Efternavn = '"&request.form("Efternavn")&"', Adresse = '"&request.form("Adresse")&"', Postnr = '"&request.form("Postnr")&"', Bynavn = '"&request.form("Bynavn")&"', Mobiltelefon = '"&request.form("Mobiltelefon")&"', Telefon = '"&request.form("Telefon")&"', mailm = '"&request.form("mailm")&"' , Stilling = '"&request.form("Stilling")&"' where id = " & request.querystring("id")
set rs = Conn.execute(strSQL)
response.write("<a href='default.asp'>Medarbejder er nu opdateret, tryk for at gå til forsiden")

end if
strSQL = "Select * From Kontaktpersoner Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)


%>

Du kan nu rette i Medarbejderns oplysniger:
<form method="post" action="retmedarb.asp?id=<%=request.querystring("id")%>">
<TABLE>
    <TR>
        <TD valign="top" bgcolor="#FFCC66" width="950"><FONT SIZE="2" COLOR="#FF0000"><b>Medarbejder</FONT><TABLE>
    <TR>
        <TD >Navn<td><input type="text" name="Fornavn" value="<%=rs("Fornavn")%>" class="Formindhold" size="40"></td></TD>    </TR>
        <TD >Efternavn<td><input type="text"  name="Efternavn"  size="40" class="Formindhold" value="<%=rs("Efternavn")%>"  ></td></TD>    </TR>
        <TD >Adresse<td><input type="text"  name="Adresse"  size="40" class="Formindhold" value="<%=rs("Adresse")%>"  ></td></TD>    </TR>
        <TD >Postnr<td><input type="text"  name="Postnr" class="Formindhold" size="4" value="<%=rs("Postnr")%>" ></TD></TD>    </TR>
        <TD >Bynavn<td><input type="text" name="Bynavn"  size="40" class="Formindhold" value="<%=rs("Bynavn")%>" ></td></TD>    </TR>

    </TR>
    <TR>
   
        <TD >Mobiltelefon<td><input type="text" name="Mobiltelefon" class="Formindhold" value="<%=rs("Mobiltelefon")%>"  ></td></TD>    </TR>
        <TD >Hjemme tlf<td><input type="text" name="Telefon" class="Formindhold" value="<%=rs("telefon")%>"  ></td></TD>    </TR>
        <TD >E-mail<td><input type="text"  size="40" name="mailm" class="Formindhold" value="<%=rs("mailm")%>" ></td>    </TR>
        <TD >Stilling<td><input type="text" name="Stilling" size="40" class="Formindhold" value="<%=rs("Stilling")%>" ></td></TD>
    </TR>    </TR>
    </TABLE>
   
    </TD>
    </TR>
    </TABLE>


<center>

<INPUT TYPE='submit' NAME='update' value='Gem' class='knap'>
Avatar billede roenving Novice
27. juni 2003 - 14:14 #1
Sæt onchange="this.form.submit()" ind i dine input-felter ...

Så gør den det godt nok en gang for hvert felt man retter i, men det er jo det, du ønsker ?-)
Avatar billede l_otto Nybegynder
27. juni 2003 - 14:19 #2
den gemmer det ikke men loader siden.....:
<TD >Navn<td><input type="text"  onchange="this.form.submit()"  name="Fornavn" value="<%=rs("Fornavn")%>" class="Formindhold" size="40"></td></TD>

står det ikke rigtigt ?
Avatar billede roenving Novice
27. juni 2003 - 14:42 #3
Jo, men nu er asp ikke mig, så der er noget med den værdi i submitten, som måske skal sættes -- det er der sikkert en asp'er som kan klare ...

Men jeg kom til at kigge på din kode, du skal da lige snedkerere html'en om sådan:

<TD >Navn</TD><td><input type="text"  onchange="this.form.submit()"  name="Fornavn" value="<%=rs("Fornavn")%>" class="Formindhold" size="40"></td>

-- altså afslutte en tabelcelle før du starter den næste !-)
Avatar billede l_otto Nybegynder
27. juni 2003 - 14:45 #4
tak for html koden :-) men det ser fint ud som det står det er jo taget ud af en større helhed..

Håber den omtalte aspér kigger på denne side..
Avatar billede roenving Novice
27. juni 2003 - 14:49 #5
Jeg kan se, at det udløses ved at du requester værdien for feltet 'update' - altså submit-knappen, så måske kan det klares med:

onchange="this.form.update.value='Gem';this.form.submit();"
Avatar billede l_otto Nybegynder
27. juni 2003 - 14:52 #6
du har fat i noget men den gemmer det stadig ikke.... men reloader siden,godt nok:

<TD >Navn<td><input type="text"  onchange="this.form.update.value='Gem';this.form.submit();"  name="Fornavn" value="<%=rs("Fornavn")%>" class="Formindhold" size="40"></td></TD>
Avatar billede l_otto Nybegynder
27. juni 2003 - 14:53 #7
hvad kan det så være..
Avatar billede l_otto Nybegynder
27. juni 2003 - 16:03 #8
er vi gået i stå her ?
Avatar billede roenving Novice
27. juni 2003 - 16:06 #9
Er du sikker på den ikke gemmer ?-)

Kom lige til at kigge på din kode -- det kunne være at den bare ikke udskrev linket som kommer efter opdateringen fordi det ikke afsluttes ...

response.write("<a href='default.asp'>Medarbejder er nu opdateret, tryk for at gå til forsiden</a>")
Avatar billede l_otto Nybegynder
27. juni 2003 - 16:09 #10
100% for den viser hvad den har rettet når man trykker på GEm knappen...

så det gør den ikke sorry..

og den udskriver heller ikke linket.....
Avatar billede roenving Novice
27. juni 2003 - 16:21 #11
Øv, skulle bare afprøve den mulighed også ,-|
Avatar billede eagleeye Praktikant
27. juni 2003 - 19:45 #12
Grunden til den ikke gemmer er fordi du ikke man med onChange ikke klikker på submit knappen "update" og får dens værdi med, som du bruger i din if sætning til at tjekke om formen er send til siden.:

if request.form("update") <> "" then

Brug i stedet for denne som tjekker på om formen er POST'et til siden, det virker om man har trykke på submit-knappen eller kaldt .submit()

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
Avatar billede l_otto Nybegynder
27. juni 2003 - 21:36 #13
eagleeye

Du kan jo det skidt for satan...... he he  det gad jeg godt kunne..

Thanx
Avatar billede roenving Novice
28. juni 2003 - 01:28 #14
Øeh ... l_otto

fint nok at eagleeye klarer den sidste tredjedel af problemet -- men var det ikke den sidste tredjedel (eller halvdel eller whatever !-)

-- forøvrigt vil jeg vurdere, at det var ca. en tiendedel .-)
Avatar billede eagleeye Praktikant
28. juni 2003 - 12:50 #15
På hvilken måde vurdere du det til en tiendedel?

Det ene er få input felterne til at submitte, det andet er at få det gemt i databasen. Altså 2 ting ;) men der skal ikke være nogle smalle steder her så du få de 20 point.

Svar her http://www.eksperten.dk/spm/370182
Avatar billede roenving Novice
29. juni 2003 - 01:21 #16
>>eagleeye

Ingen ide om at genere hverken heller dig ...

-- men jeg forsøger (forsøger !-) helt at være når jeg går ind i et spm her ...

-- derfor gjorde jeg også klart opmærksom på, at jeg måtte træde ved siden af, når det handlede om asp-delen af problemet ...

-- øeh, en tredje-del eller en tiendedel, ha, der fik du mig ...

Da den sidste ende af det blev færdigt til l_ottos tilfredshed, har det sikkert været ret ligegyldigt for ham -- endelig fungerer det, det var faktisk derfor jeg reagerede ...

-- 'på been' som Piontek ville have sagt, så det var mest et forsøg på at gøre l_otto opmærksom på, at jeg havde brugt noget tid og nogle kræfter på hans problem og ikke syntes det var i orden at blive ignoreret -- og jeg synes det er *fedt* at du lige kan gennemskue resten af problemet ...

;O)

-- hæ, og jeg skal også finde ud af, hvordan jeg ser ud til ikke at være fornærmet i 370182 ,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