Avatar billede thomas_b Nybegynder
21. februar 2005 - 01:36 Der er 28 kommentarer og
1 løsning

På bestemt post en anden baggrundsfarve ?

Hej Eksperter...

Hvordan kan jeg udvikle dette script så når jeg får et tal ind fra Request.QueryString("id") kan få en bestemt post til at være anden baggrundsfarve end de andre, i et loop database udtræk...?

//Thomas...
Avatar billede mjense173 Nybegynder
21. februar 2005 - 01:57 #1
Noget i denne retning?

if Request.QueryString("id") = db["varenr"] then response.write("<color>")
response.write(db["varenavn"])
if Request.QueryString("id") = db["varenr"] then response.write("</color>")

Eller hvad mener du?
Avatar billede thomas_b Nybegynder
21. februar 2005 - 02:03 #2
kan du prøve at hjælpe mig med at sætte det ind i dette script:

<%
SQL = "SELECT * FROM me ORDER BY navn"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2
do while not rs.eof
%>

<table cellspacing="0" cellpadding="0" border="0" width="150">
<tr>
<a href="?id=<%=ID%>" class="txt_link">
<td class="txt" style="background-color:<%=f_color%>;padding-left:4px;border:1px solid #000000;"><%=Navn%><br></td>
</a>
</tr>
</table>

<%
rs.movenext
loop
%>
Avatar billede mjense173 Nybegynder
21. februar 2005 - 02:08 #3
skal du ikke have nogle rs["søjlenavn"] i din kode?

Der bliver jo ikke skrevet noget ud fra databasen, selvom scriptet gennemløber resultatet af din SQL-streng.
Avatar billede mjense173 Nybegynder
21. februar 2005 - 02:14 #4
<%
SQL = "SELECT * FROM me ORDER BY navn"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2
do while not rs.eof
f_color = "FFFFFF"
if rs["id"] = Request.QueryString("id") then f_color = "red"
%>

<table cellspacing="0" cellpadding="0" border="0" width="150">
<tr>
  <td class="txt" style="background-color:#<%=f_color%>;padding-left:4px;border:1px solid #000000;"><a href="?id=<%=rs["ID"]%>" class="txt_link"><%=rs["Navn"]%></a></td>
</tr>
</table>

<%
rs.movenext
loop
%>
Avatar billede thomas_b Nybegynder
21. februar 2005 - 02:14 #5
Navn = rs("navn")
ID = rs("ID")

men det hjælper da ikke... (havde bare glemt at tage dem med...!)
Avatar billede mjense173 Nybegynder
21. februar 2005 - 02:18 #6
Virker denne kode for dig:

<%
SQL = "SELECT * FROM me ORDER BY navn"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2
do while not rs.eof
f_color = "FFFFFF"
if rs("id") = Request.QueryString("id") then f_color = "red"
%>

<table cellspacing="0" cellpadding="0" border="0" width="150">
<tr>
  <td class="txt" style="background-color:#<%=f_color%>;padding-left:4px;border:1px solid #000000;"><a href="?id=<%=rs("ID")%>" class="txt_link"><%=rs("Navn")%></a></td>
</tr>
</table>

<%
rs.movenext
loop
%>
Avatar billede thomas_b Nybegynder
21. februar 2005 - 02:18 #7
Det virker ikke...!
Avatar billede mjense173 Nybegynder
21. februar 2005 - 02:22 #8
Ja.... -og kan du fortælle mig hvad den siger om fejlen?
Avatar billede thomas_b Nybegynder
21. februar 2005 - 02:24 #9
Det kommer igen fejl den viser bare hvid farve...
Avatar billede mjense173 Nybegynder
21. februar 2005 - 02:30 #10
hvad sker der hvis du kører dette script:

<%
SQL = "SELECT * FROM me ORDER BY navn"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2
do while not rs.eof
if rs("id") = Request.QueryString("id") then response.write "<b>"
response.write rs("navn")
if rs("id") = Request.QueryString("id") then response.write "</b>"
response.write "<br>"
rs.movenext
loop
%>


med denne parm: server.dk/script.asp?id=3
(id'et skal eksistere i databasen, ellers giver det ikke mening.)
Avatar billede thomas_b Nybegynder
21. februar 2005 - 02:32 #11
stadig hvid...
og posten eksistere i DB, det er jo der den tager ID'et i første omgang....
Avatar billede thomas_b Nybegynder
21. februar 2005 - 02:34 #12
man kan jo ikke gøre dette på en anden smart måde vel...
Avatar billede mjense173 Nybegynder
21. februar 2005 - 02:40 #13
hvad med dette:
Avatar billede mjense173 Nybegynder
21. februar 2005 - 02:40 #14
<%
SQL = "SELECT count(*) AS antal FROM me ORDER BY navn"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2
response.write "Der er "
do while not rs.eof
response.write rs("antal")
rs.movenext
loop
response.write ". poster i db."
%>
Avatar billede fennec Nybegynder
21. februar 2005 - 08:04 #15
Det kan være en tekst <-> tal sammenligning der opstår. Prøv at typecaste begge til tekst:

if rs("id")&"" = Request.QueryString("id")&"" then f_color = "red"
Avatar billede thomas_b Nybegynder
21. februar 2005 - 11:22 #16
Jeg har modaniseret min kode lidt, og prøvet på alle måder at fixe det... men virker stadig ikke... nu ser min kode sådan ud:


<%
SQL = "SELECT * FROM instil where ID='menu'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2
%>
<% if rs("1") = "1" then %>
<% SQL = "SELECT * FROM menu ORDER BY sort" %>
<% else %>
<% SQL = "SELECT * FROM menu ORDER BY navn" %>
<% end if %>
<%
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn,1, 2

if (rs.bof or rs.eof) then
response.redirect ("?cmd=2&sec=2&dec=1&sta=tom")
else

do while not rs.eof

Navn = rs("navn")
ID = rs("ID")
RQ = Request.QueryString("id")

if ID = RQ then
f_color = "#5B9CA4"
end if

%>

<table cellspacing="0" cellpadding="0" border="0" width="150">
<tr>
<a href="admin.asp?cmd=2&sec=2&dec=42&id=<%=ID%>" class="txt_link">
<td class="txt" style="background-color:<%=f_color%>;padding-left:4px;border:1px solid #000000;"><%=Navn%><br></td>
</a>
</tr>
</table>

<img src="img/pix.gif" border="0" height="2" width="1"><br>
<%
rs.movenext
loop
end if
%>


------------------------
Og alle tabellerne står som "Tekst" (id står som autonummer...!)
Avatar billede mjense173 Nybegynder
21. februar 2005 - 17:07 #17
Prøv at køre den kode jeg sendte før! Og skriv hvad den svarer!
Avatar billede thomas_b Nybegynder
22. februar 2005 - 23:25 #18
Desvære har fundet ud af det... eagleeye hjalp mig med det jeg skulle bare sætte dette ind...

if Cstr(RQ) = Cstr(ID) then
  f_color = "#5B9CA4"
else
  f_color = "#FF00FF"
end if

Jeg tager selv point... ikk...?
Avatar billede mjense173 Nybegynder
23. februar 2005 - 00:06 #19
Det svar har jeg jo givet dig, i flere forskellige udgaver!
Du tænker vel på den løsning som eagleeye viser i:
http://www.eksperten.dk/spm/592991

Men du kan ikke bare selv tage point, fordi du finder ud af samme svar!


------
Jeg kan se at du siden starten på eksperten har oprettet 26 spørgsmål.
Hvoraf du selv har besvaret de 13. Det er Halvdelen..
Det er måske lidt i overkanten...
Avatar billede thomas_b Nybegynder
23. februar 2005 - 00:39 #20
Jeg spørger... bare...

Hvad forslår du måske ???
Avatar billede mjense173 Nybegynder
23. februar 2005 - 00:50 #21
Kig i min kommentar fra 21/02-2005 02:14:00

f_color = "FFFFFF"
if rs["id"] = Request.QueryString("id") then f_color = "red"


Den gør det det samme som den du selv har fundet ud af, bortset fra typetjekket.
Avatar billede thomas_b Nybegynder
23. februar 2005 - 01:01 #22
Det gjorde den ikke jeg har jo prøvet...!
Bortset fra det så er det ikke mig der har fundet ud af det...!
Avatar billede mjense173 Nybegynder
23. februar 2005 - 01:32 #23
forskellen er blot at du bruger den i dit foregående script, som ikke virkede.
Her er min omskrevet. til en if-then-else:

if Request.QueryString("id") = rs["id"] then
  f_color = "red"
else
  f_color = "FFFFFF"
end if

kan du se ligheden?

Hvis resten af scriptet havde virket, ville den have udskrevet det som du gerne ville have, bortset fra at den ikke ville farve baggrunden på den ene, fordi at
der manglede et Cstr().

Men du sagde at skærmen blot blev hvid. Så derfor lå fejlen et andet sted.
Derfor syntes jeg ikke at du med rimelighed kan afvise mit forslag.
Avatar billede thomas_b Nybegynder
23. februar 2005 - 01:36 #24
Jeg kan bare sige at dit forslag ikke virkede...
Men bare læg et svar... Det er da bare lidt ligemeget...!
Avatar billede mjense173 Nybegynder
23. februar 2005 - 01:45 #25
Jeg tror ikke du er helt med på hvad jeg siger..

Mit forslag virkede rent faktisk, men det var resten af din kode der ikke virkede.

Det er ikke fordi jeg søger point, men jeg ikke at du er fair overfor mig når jeg forsøger at hjælpe dig og du derefter løser den via en anden trå.
Avatar billede thomas_b Nybegynder
23. februar 2005 - 01:48 #26
Okay...
Men den virkede fint da jeg prøvede med eagleeye's kode, og jeg har ikke selv ændret i "hoved-koden" !!!
Avatar billede mjense173 Nybegynder
23. februar 2005 - 01:53 #27
Du kan jo selv prøve at udskifte den med min:

f_color = "#FF00FF"
if Cstr(rs("ID")) = Cstr(Request.QueryString("id")) then f_color = "#5B9CA4"

hvor jeg har ændret farverne, til dine, samt tilføjet Cint.

Du kan herefter helt undvære dine vars: RQ og ID
Avatar billede thomas_b Nybegynder
23. februar 2005 - 01:56 #28
Hvis du ikke lægger et svar så lader jeg bare dette spørgsmål stå åben...
Det er op til dig...
Avatar billede mjense173 Nybegynder
23. februar 2005 - 02:07 #29
Læser du overhovedet ikke, hvad jeg skriver?

Jeg er ikke ude efter dine point, jeg prøvet blot at fortælle dig at den måde du arbejder herinde, ikke er fair overfor os andre.

Tag bare dine point selv, og prøv så en anden gang, at tænke på hvordan du selv ville have det med at bruge tid på at hjælpe én, der opfører sig på den måde!!

Så får du også en rigtigt svar meget hurtigere.
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