Avatar billede ger2001 Novice
10. marts 2005 - 07:41 Der er 27 kommentarer og
1 løsning

vise information ved gem

Jeg vil gerne have at der vises de informationer som man har tastet ind når man trykker på gem. Her er lidt af koden, håber det er nok.
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db1.mdb;")
mode = Request.QueryString("mode")
scriptname = Request.ServerVariables("SCRIPT_NAME")

if mode = "save" then

    temp1 = request.form("vareNR")
    temp2 = request.form("kundenummer")
    temp3 = replace(request.form("describe"),"'","''")
    temp4 = request.form("amountDumped")
    temp5 = replace(request.form("solution"),"'","''")
    temp6 = replace(request.form("responsible"),"'","''")
    strSQL = "Insert into fejl (dato) values ( & date & )"
    sql = "insert into fejl(varenummer, kundenummer, beskrivelse, antal_kasserede, loesning, ansvarlig, dato) "&_
    "values("& temp1 &",'"& temp2 &"','"& temp3 &"',"& temp4 &",'"& temp5 &"','"& temp6 &"','"& date &"' )"

conn.execute(sql)
  response.redirect(scriptname)

end if
%>
Avatar billede fennec Nybegynder
10. marts 2005 - 08:14 #1
Er ikke helt med på hvornår du vil vise dem. Er det på den side efter du har redirectet???
Avatar billede ger2001 Novice
10. marts 2005 - 08:25 #2
Ok, prøver at forklare. Jeg forestiller mig at det kommer op når man har trykket på gem. Men hvis du har andre ideer så skal jeg prøve at forklare mig.
Jeg havde tænkt mig at bruge det ID som der automatisk kommer, men problemet er at det først kommer når man gemmer, Havde også tænkt på at lave en ny kolonne med et nummer og så bare lægge en til det sidste gemte, men hvad så hvis der er flere der bruger det samtidigt.
Avatar billede fennec Nybegynder
10. marts 2005 - 08:29 #3
Ok det er ikke så svært. Med denne metode har du ID med på url'en når du redirecter:

conn.execute(sql)
set rs = conn.execute("select @@identity")
response.redirect(scriptname&"?id="& rs(0))

Var det det du mente???
Avatar billede ger2001 Novice
10. marts 2005 - 08:38 #4
Synes ikke jeg kan se nogen forskel. Skal lige nævnes at jeg næsten intet ved noget om asp. Poster lige hele koden: ved ikke om du kan genkende den??
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db1.mdb;")
mode = Request.QueryString("mode")
scriptname = Request.ServerVariables("SCRIPT_NAME")

if mode = "save" then

    temp1 = request.form("vareNR")
    temp2 = request.form("kundenummer")
    temp3 = replace(request.form("describe"),"'","''")
    temp4 = request.form("amountDumped")
    temp5 = replace(request.form("solution"),"'","''")
    temp6 = replace(request.form("responsible"),"'","''")
    strSQL = "Insert into fejl (dato) values ( & date & )"
    sql = "insert into fejl(varenummer, kundenummer, beskrivelse, antal_kasserede, loesning, ansvarlig, dato) "&_
    "values("& temp1 &",'"& temp2 &"','"& temp3 &"',"& temp4 &",'"& temp5 &"','"& temp6 &"','"& date &"' )"


conn.execute(sql)
set rs = conn.execute("select @@identity")
response.redirect(scriptname&"?id="& rs(0))



end if
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script src="3common.js" type="text/javascript"></script>
    <title>Untitled</title>
</head>

<body bgcolor="black">
<table width="100%" style="height: 85%" borders="0" bgcolor="black">
  <tr>
    <td bgcolor="black" fontcolor="white">
<center><h3><font face="verdana" color="white">Fejl</font></h3>
</td>
  </tr>
  <tr>
  <td width="100%" height="50%"  bgcolor="#013763">
    <table border="0" width="100%" style="height: 100%">
      <tr>
      <td>

<form name="myForm" method="post" action="<%= scriptname %>?mode=save">
<P style="margin-left:100px;">
<br>




<select name="vareNR" style="width:343px">

<%
set rs = conn.execute("select * from varenummer order by varenr")
do while not rs.eof
  response.write "<option value='"& rs("varenr") &"'>"& rs("varenr") & "-" & rs("varenavn")
  rs.MoveNext
loop
%>
</select></p>
<P style="margin-left:100px;">


<input type="Text" name="kundenummer" onFocus="clearForm(this)" value="kundenummer"><br>

<P style="margin-left:100px;">

<textarea name="describe" cols="40" rows="4" onFocus="clearForm(this)">beskrivelse</textarea><br>
</p>
<P style="margin-left:100px;">
<input type="Text" name="amountDumped" onFocus="clearForm(this)" value="antal kasserede"><br>
<P style="margin-left:100px;">
<textarea name="solution" cols="40" rows="4" onFocus="clearForm(this)">Løsning</textarea><br>
</p>
<P style="margin-left:100px;">
<input type="Text" name="responsible" value="ansvarlig" onFocus="clearForm(this)"><br>
<P style="margin-left:100px;">
<input type="Submit" value="Gem">
</p>
</form>

<br><br>
</td>
      </tr>
  <tr>
      <td valign="bottom"><img src="logo.bmp" align="right"></td>
      </tr>
    </table>
    </td>
  </tr>
  <tr>
    <td bgcolor="black" fontcolor="white">&nsb


</td>
  </tr>
  </table>

</body>
</html>
Avatar billede ger2001 Novice
10. marts 2005 - 08:41 #5
Der skal være et identifikations nr som hentyder til den specielle fejl. Det skal man kunne give kunden når man skriver fejlen. Det bedste ville selvfølgelig være hvis den kunne komme på hovedsiden, men ellers ville det være fint hvis det kommer når man trykker på gem.
Avatar billede fennec Nybegynder
10. marts 2005 - 09:15 #6
Så ville jeg henvise til en tak side i stedet når du redirecter.

conn.execute(sql)
set rs = conn.execute("select @@identity")
response.redirect("FejlTakSide.asp?id="& rs(0))


FejlTakSide.asp
<%
FejlID = request.querystring("ID")
%>
Din fejl vil blive behandlet hurtigst muligt. Opgaven er blevet tildelt ID <%= FejlID %>, som skal oplyses hvis du har ? angående opgaven.

Du kan selvfølgelig også selecte informationer fra databasen på siden, så brugerne ser dem igen..
Avatar billede ger2001 Novice
10. marts 2005 - 09:25 #7
Det kan muligvis virke. Kan man ikke få den til at skrive den information som man har indtastet. Jeg har tænkt mig at bruge den ID som der automatisk kommer i tabellen fejl, som identifikationnummer.
Avatar billede fennec Nybegynder
10. marts 2005 - 09:49 #8
Det er allerede det nummer jeg overført til taksiden. Så det er ikke noget problem at hente info ud fra databasen:

<%
FejlID = request.querystring("ID")
set rs = conn.execute("select * from fejl where id="& FejlID)
%>
Avatar billede ger2001 Novice
10. marts 2005 - 09:52 #9
Men den skriver bare 0
Avatar billede fennec Nybegynder
10. marts 2005 - 10:02 #10
Det var mærkeligt....
Prøv lige at tjekke ID'et lige efter du indsætter:

sql = "insert into fejl(varenummer, kundenummer, beskrivelse, antal_kasserede, loesning, ansvarlig, dato) "&_
    "values("& temp1 &",'"& temp2 &"','"& temp3 &"',"& temp4 &",'"& temp5 &"','"& temp6 &"','"& date &"' )"
conn.execute(sql)
set rs = conn.execute("select @@identity")
response.write "ID: "& rs(0)
response.end
response.redirect(scriptname&"?id="& rs(0))
Avatar billede ger2001 Novice
10. marts 2005 - 10:06 #11
den skriver bare
ID: 0
Avatar billede fennec Nybegynder
10. marts 2005 - 10:12 #12
A hvad???
Hvorfor kan du ikke bruge "select @@identity" metoden. Den har jeg da brugt 1000 gange sammen med Access...

Så må vi vel bruge max() metoden, men den er ikke så sikker. Hvad siger ID'et med denne:

conn.execute(sql)
set rs = conn.execute("select max(id) from fejl")
response.write "ID: "& rs(0)
Avatar billede ger2001 Novice
10. marts 2005 - 10:15 #13
Jeg har engang prøvet med max. Men nu sker der dette
Tekniske oplysninger (for supportteknikere)

Fejltype:
Microsoft JET Database Engine (0x80040E10)
No value given for one or more required parameters.
/1.asp, line 21


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.40607)

Side:
POST 108 bytes to /1.asp

POST Data:
vareNR=201000&kundenummer=666&describe=beskrivelse&amountDumped=666&solution=L%F8sning&responsible=ansvarlig

Klokkeslæt:
10. marts 2005, 10:16:35


Yderligere oplysninger:
Microsoft Support
Avatar billede fennec Nybegynder
10. marts 2005 - 10:26 #14
Og kolonnen med autonummer hedder også id???
Avatar billede ger2001 Novice
10. marts 2005 - 10:28 #15
nej den hedder ID1
Avatar billede fennec Nybegynder
10. marts 2005 - 10:32 #16
og du selecter også max(ID1) så....
Avatar billede ger2001 Novice
10. marts 2005 - 10:41 #17
OK, men bruger lige det med fejlTakside.asp og det virker.
Hvordan får man den så til at skrive det varenummer + de andre ting der hører til.
Kan man ikke risikere at få det forkerte nummer hvis forbindelsen til en computer sidder fast eller går langsomt, samtidigt med at en anden bruger siden?
Avatar billede fennec Nybegynder
10. marts 2005 - 10:58 #18
Hent data på taksiden: se min post 09:49:52

Jo, det er netop problemet med max(). Det var derfor jeg ville bruge @@identity metoden. Der kan det nemlig ikke ske. Det er ikke sådan at du har mulighed for at omdøbe ID1 til ID. Det er måske derfor @@identity metoden ikke virker...
Avatar billede ger2001 Novice
10. marts 2005 - 11:16 #19
Har omdøbt ID1 til id men det virker stadig ikke, den skriver stadig
ID:0
Max() vil jeg ikke bruge da der ikke må kunne ske fejl. hmmmm.
Avatar billede fennec Nybegynder
10. marts 2005 - 11:51 #20
Du har desværre ikke andre muligheder end max() når @@identity ikke vil virke :(
Der er nu ikke særlig stor sandsynlighed for at der sker fejl. For det første skal der være to der trykker "Gem" på samme tidspunkt, og selv da er det ikke sikkert den fejler. Og det bliver jo stadig gemt, kunden får bare oplyst et forkert ID.
Avatar billede ger2001 Novice
10. marts 2005 - 12:17 #21
kan det have noget at gøre med at jeg køre det fra min egen comp. win2000
Avatar billede fennec Nybegynder
10. marts 2005 - 12:22 #22
Måske, men jeg kan ikke se hvorfor....
Du kunne jo prøve at smide det ud til en udbyder, og se om det virker der.
Avatar billede ger2001 Novice
10. marts 2005 - 12:26 #23
OK smid et svar så får du pointene
Avatar billede fennec Nybegynder
10. marts 2005 - 12:45 #24
.o) <-- One Eyed Jack
Avatar billede ger2001 Novice
10. marts 2005 - 15:24 #25
ved ikke om det er for sent men prøver desperat at få den til at vise mere end ID.
Har prøvet at bruge det som du hentyder til 09:49:52 men:
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'conn'
/FejlTakSide.asp, line 3
Avatar billede fennec Nybegynder
10. marts 2005 - 15:29 #26
Du skal have din database connection ind på siden:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db1.mdb;")
FejlID = request.querystring("ID")
set rs = conn.execute("select * from fejl where id="& FejlID)
...
udskriv data
...
%>
Avatar billede fennec Nybegynder
10. marts 2005 - 15:30 #27
Var det ikke ID1 i stedet???

set rs = conn.execute("select * from fejl where id1="& FejlID)
Avatar billede ger2001 Novice
11. marts 2005 - 08:40 #28
Jeg ændrede den til id for at få @@identity til virke men det gjorde det ikke.
Har fået det til at virke med max(). Kan også få den til at skrive de andre ting..
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