Har en drop down meny som innehåller en kolumn som heter SERVER och är satt som primärnyckel. Tanken är att när man väljer server i meny så ska datat knuten till den visas i textrutor. Datat i textrutorna ska man kunna ändra och sedan uppdatera tabellen med den nya informationen. Så här ser början ut: När du eller någon annan klickar på knappen 'Uppdatera' körs följande snutt. Jag är inte riktigt med hur man skriver ut informationen som är kopplad till SERVER till textfält som går att redigera. Man kan väl använda till exempel Jag antar att du först endast visar tillgängliga servrar i din selectbox och när du väljer någor av de alternativ ska uppgifterna om angiven server hämtas. Hej igen, Hej, att det går bra med hämtningen det förstår jag med du måste flytta din selectbox Hej igen, Prova följande:Uppdatera innehållet med hjälp av drop meny
<code>
<!--Sida som uppdaterar info om en server-->
<Html>
<Head>
<Title>Uppdatera info</Title>
</Head>
<Body bgcolor="#e5e5e5">
<Table align="left" border="1">
<tr>
<td>Ort:<br>
<input type="Text" Name="ort" Size="20"><br>
</tr>
<form action="servmodsave.asp" method="post">
<SELECT name="server">
<option selected value="valj">-- Välj Server --</option>
<%
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM SERVER", objCon
Do Until rs.EOF
Response.Write "<option value=""" & rs.Fields("SERVER") & """>" & rs.Fields("SERVER") & "</option>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
objCon.Close
Set objCon = Nothing
%>
</select>
<tr>
<td><INPUT type=submit value="Uppdatera" name="Action">
</tr>
</Table>
</Body>
</Html>
</code>
Problemet är att jag inte riktigt vet hur man får ut infon med avseende på den server man valt. Någon som har något förslag hur man kan gå till väga?
Mvh, FreddeSv: Uppdatera innehållet med hjälp av drop meny
Koden tar värdet ur select boxen och lagrar den i varibeln sServer.
<code>
<%
Dim sServer
' Gör kontrollen här om Uppdateraknappen trycks ned
If Request("action")= "Uppdatera" then
' Lagra vilken server som valts
sServer = Request("server")
' Försätt din kod här nu när du har värdet för vilken server som valts!
End if
%>
<!--Sida som uppdaterar info om en server-->
<Html>
<Head>
<Title>Uppdatera info</Title>
</Head>
<Body bgcolor="#e5e5e5">
<Table align="left" border="1">
<tr>
<td>Ort:<br>
<input type="Text" Name="ort" Size="20"><br>
</tr>
<form action="servmodsave.asp" method="post">
<SELECT name="server">
<option selected value="valj">-- Välj Server --</option>
<%
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM SERVER", objCon
Do Until rs.EOF
Response.Write "<option value=""" & rs.Fields("SERVER") & """>" & rs.Fields("SERVER") & "</option>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
objCon.Close
Set objCon = Nothing
%>
</select>
<tr>
<td><INPUT type=submit value="Uppdatera" name="Action">
</tr>
</Table>
</Body>
</Html>
</code>Sv: Uppdatera innehållet med hjälp av drop meny
<code>
<textarea><%=rs("ORT")%></textarea>
</code>
Men detta funkar inte att köra i min loop som skriver ut alla servrar. Ska man loopa flera ggr i databasen? Sv: Uppdatera innehållet med hjälp av drop meny
Använd den lop du har idag, lägg dit en Button knapp
<code>
<input type="submit" name="Action" Value="Visa">
</code>
Lägg sedan dit följande ASP-kod:
<code>
<%
dim ServerId, server, ort, osv......
if Request("action") ="Visa" then
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
ServerId = Request("server")
Set rs = objCon.Execute "SELECT * FROM SERVER WHERE SERVER='" & ServerId
if not rs.Eof then
server= rs("server")
ort=rs("ort")
osv...
end if
</code>
Skapa sedan textboxar där du kan visa den hämtade informationen, skapa fler
fält om du har mera fält.
<code>
<input type="text" name="txtserver" value="<%=server%>">
<input type="text" name="ort" value="<%=ort%>">
</code>
Samt en hidden för att lagra den unika värdet för den server du vill uppdatera.
<code>
<input type="hidden" name="serverid" value="<%=ServerId%>">
</code>
Följande tar hand om uppdateringen när knappen 'Uppdatera' trycks ned:
<code>
If Request("Action") = "Uppdatera" then
' Kör din sql uppdatering här
End If
</code>
/JohanSv: Uppdatera innehållet med hjälp av drop meny
Har testat lite fram och tillbaka nu och fått det att funka hyffsat. Jag vill nu söka informationen med avseende på server namnet. Datat på första raden i tabellen skrivs ut i listrutorna när man laddar sidan. Dock vill denna informationen ändras när man väljer en annan server och klickar på sök. Kan man ha allting på samma sida eller ska man dirigeras vidare till en ny sida där man presenterar resultatet för sökningen?
Så här ser min kod ut...
<code>
<!--Sida som söker info om en server-->
<Html>
<Head>
<Title>Uppdatera info</Title>
</Head>
<Body bgcolor="#e5e5e5">
<Table align="left" border="0">
<H3>Sök server</H3>
<SELECT name="server">
<option selected value="Ingen">-- Välj Server --</option>
<%
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM SERVER", objCon
If not rs.Eof Then
ort=rs("ort")
status=rs("status")
Do Until rs.EOF
Response.Write "<option value=""" & rs.Fields("SERVER") & """>" & rs.Fields("SERVER") & "</option>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
objCon.Close
Set objCon = Nothing
End if
%>
</select>
<form action="" method="post">
<tr>
<td>Ort:<br>
<input type="Text" Name="ort" Size="20" Value="<%=ort%>"><br>
<td>Status:<br>
<input type="Text" Name="status" Size="20" Value="<%=status%>"><br>
</tr>
<tr>
<td>Funktion:<br>
<input type="Text" Name="funk" Size="20"><br>
<td>Databas:<br>
<input type="Text" Name="datab" Size="20"><br>
</tr>
<tr>
<td>Modell:<br>
<input type="Text" Name="modell" Size="20"><br>
<td>Ant processorer:<br>
<input type="Text" Name="procs" Size="20"><br>
</tr>
<tr>
<td>MHz per processor:<br>
<input type="Text" Name="mhzp" Size="20"><br>
<td>Minne:<br>
<input type="Text" Name="minne" Size="20"><br>
</tr>
<tr>
<td>Utrustning:<br>
<input type="Text" Name="utrust" Size="20"><br>
<td>OS:<br>
<input type="Text" Name="os" Size="20"><br>
</tr>
<tr>
<td>Domän:<br>
<input type="Text" Name="domain" Size="20"><br>
<td>Kommentar:<br>
<input type="Text" Name="komme" Size="20"><br>
</tr>
<tr>
<td><INPUT type=submit value="Sök" name="Action">
<td><input type="Reset" Value="Återställ" Name="reset">
</tr>
</form>
</Table>
</Body>
</Html>
</code>
Allting funkar bra och den hämtar ut vilka servrar som finns. Men det är när man vill plocka fram info om respektive server det inte fungerar.Sv: Uppdatera innehållet med hjälp av drop meny
inom <form> taggen för att värde ska hänga med när du submittar formen.
Att skapa en sida som endast uppdaterar infon är ingen dum idé med tanke på att koden blir 'lättare' att tyda för ögat.
När du sedan uppdaterat info om servern kan du göra Response.Redirect tillbaka till
sidan för att söka info för varje server.
Använd gärna exemplet som jag visade i föregående inlägg.
Jag vet inte om du har ett id-fält för varje server eftersom du användare samma
fält för value och name-fältet för selectboxen.
Rekommenderar att du lägger dit om du inte har det redan.
<code>
<!--Sida som söker info om en server-->
<Html>
<Head>
<Title>Uppdatera info</Title>
</Head>
<Body bgcolor="#e5e5e5">
<Table align="left" border="0">
<form action="" method="post">
<tr>
<td>
<H3>Sök server</H3>
<!-- Flytta selectboxen hit-->
<SELECT name="server">
<option selected value="Ingen">-- Välj Server --</option>
<%
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM SERVER", objCon
If not rs.Eof Then
ort=rs("ort")
status=rs("status")
Do Until rs.EOF
Response.Write "<option value=""" & rs.Fields("SERVER") & """>" & rs.Fields("SERVER") & "</option>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
objCon.Close
Set objCon = Nothing
End if
%>
</select>
</td>
</tr>
<%
' Visar endast HTML-koden om man submittat formen
If Request("Action") = "Sök" then
%>
<tr>
<td>Ort:<br>
<input type="Text" Name="ort" Size="20" Value="<%=ort%>"><br>
<td>Status:<br>
<input type="Text" Name="status" Size="20" Value="<%=status%>"><br>
</tr>
<tr>
<td>Funktion:<br>
<input type="Text" Name="funk" Size="20"><br>
<td>Databas:<br>
<input type="Text" Name="datab" Size="20"><br>
</tr>
<tr>
<td>Modell:<br>
<input type="Text" Name="modell" Size="20"><br>
<td>Ant processorer:<br>
<input type="Text" Name="procs" Size="20"><br>
</tr>
<tr>
<td>MHz per processor:<br>
<input type="Text" Name="mhzp" Size="20"><br>
<td>Minne:<br>
<input type="Text" Name="minne" Size="20"><br>
</tr>
<tr>
<td>Utrustning:<br>
<input type="Text" Name="utrust" Size="20"><br>
<td>OS:<br>
<input type="Text" Name="os" Size="20"><br>
</tr>
<tr>
<td>Domän:<br>
<input type="Text" Name="domain" Size="20"><br>
<td>Kommentar:<br>
<input type="Text" Name="komme" Size="20"><br>
</tr>
<% End If %>
<tr>
<td><INPUT type=submit value="Sök" name="Action">
<td><input type="Reset" Value="Återställ" Name="reset">
</tr>
</form>
</Table>
</Body>
</Html>
</code>Sv: Uppdatera innehållet med hjälp av drop meny
Jag måste vara riktigt trög för jag får fortfarande inte det att funka. Kolumnen SERVER använder jag som id och SERVER heter även hela tabellen. Det som händer nu är att jag kan välja server och sedan kommer fälten upp. Dock så kommer samma information om ort och status upp jämnt. Det blir alltså ingen skillnad om jag ändrar i listan. Måste det inte bli någon form av SELECT * FROM SERVER WHERE SERVER = värdet av den server man väljer ur listan. Men hur ska jag få tag på den? Jag är inte så jättehemma på asp, men försöker så gott en kan =) Sv: Uppdatera innehållet med hjälp av drop meny
/Johan
<code>
<%
' Körs om Uppdatera knappen tryckts
If Request("Action") = "Uppdatera" then
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
Dim sql
sql = "Update server set " _
& "ort='" & Request("ort") & "', " _
& "status='" & Request("status") & "', " _
' fortsätt på samma sätt med alla fälten du vill uppdatera
' ....
& " where server='" &Request("serverid") & "'"
objCon.Execute sql
End If
%>
<Html>
<Head>
<Title>Uppdatera info</Title>
</Head>
<Body bgcolor="#e5e5e5">
<Table align="left" border="0">
<form action="" method="post">
<tr>
<td>
<H3>Sök server</H3>
<%
' Kontrollera att INTE knappen 'Visa' har tryckts
' Visa selectboxen och hämta info från DB
If Request("Action") <> "Sök" then
%>
<!-- Flytta selectboxen hit-->
<SELECT name="server">
<option selected value="Ingen">-- Välj Server --</option>
<%
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM SERVER", objCon
If not rs.Eof Then
Do Until rs.EOF
Response.Write "<option value=""" & rs.Fields("SERVER") & """>" & rs.Fields("SERVER") & "</option>"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
objCon.Close
Set objCon = Nothing
%>
</select>
<INPUT type=submit value="Sök" name="Action">
</td>
</tr>
<%
' Kontrollera att sök knappen tryckts
Else if Request("Action") = "Sök" then
' Hämta info om den server som valts...
' och visa info om den i textboxarna
' Textboxarna visas endast om
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={MIMER};Database=mimerdb;Uid=Fredrik;Pwd=tupac6;"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM SERVER WHERE SERVER='" & Request("server") & "'", objCon
If not rs.Eof Then
ort=rs("ort")
status=rs("status")
funk = rs("funk")
datab = rs("datab")
modell = rs("modell")
procs = rs("procs")
mhzp = rs("mhzp")
minne = rs("minne")
utrust = rs("utrust")
os = rs("os")
domain = rs("domain")
komme = rs("komme")
End If
rs.Close
Set rs = Nothing
objCon.Close
Set objCon = Nothing
%>
<tr>
<td>Ort:<br>
<input type="Text" Name="ort" Size="20" Value="<%=ort%>"><br>
<td>Status:<br>
<input type="Text" Name="status" Size="20" Value="<%=status%>"><br>
</tr>
<tr>
<td>Funktion:<br>
<input type="Text" Name="funk" Size="20" value="<%=funk%>"><br>
<td>Databas:<br>
<input type="Text" Name="datab" Size="20" value="<%=datab%>"><br>
</tr>
<tr>
<td>Modell:<br>
<input type="Text" Name="modell" Size="20" value="<%=modell%>"><br>
<td>Ant processorer:<br>
<input type="Text" Name="procs" Size="20" value="<%=procs%>"><br>
</tr>
<tr>
<td>MHz per processor:<br>
<input type="Text" Name="mhzp" Size="20" value="<%=mhzp%>"><br>
<td>Minne:<br>
<input type="Text" Name="minne" Size="20" value="<%=minne%>"><br>
</tr>
<tr>
<td>Utrustning:<br>
<input type="Text" Name="utrust" Size="20" value="<%=utrust%>"><br>
<td>OS:<br>
<input type="Text" Name="os" Size="20" value="<%=os%>"><br>
</tr>
<tr>
<td>Domän:<br>
<input type="Text" Name="domain" Size="20" value="<%=domain%>"><br>
<td>Kommentar:<br>
<input type="Text" Name="komme" Size="20" value="<%=komme%>"><br>
<!-- Lagra värdet för serverid i ett gömt fält-->
<input type="hidden" name="serverid" value="<%=Request("server")%>">
</tr>
<tr>
<td><INPUT type=submit value="Uppdatera" name="Action">
<td><input type="Reset" Value="Återställ" Name="reset">
</tr>
<% End If %>
</form>
</Table>
</Body>
</Html>
</code>