Just nu i M3-nätverket
Gå till innehåll

hjälp med response.write länkning


dareknowak

Rekommendera Poster

Skriver ut en grund så ni förstår hur jag vill ha det.. har provat mig fram och även sökt men inte lyckats få ihop denna

 

<%=txt_<%=RS("rank")%>%>

 

har provat med men funka inte heller:

<%=txt_=RS("rank")%>

<%=txt_"RS("rank")"%>

 

Provade med detta osså:

<%="txt_" & RS("rank")%>

Det resulterar till att den skriver txt_1 (ex)

men får du inte fram Medlem så måste fortfarande va fel :)

 

Någon som kan hjälpa mycke tacksam isåfall

Om ni undrar varför jag har såhär så ska jag förklara det..

<%txt_1="Medlem"%>

<%txt_2="VIP"%>

<%txt_3="Admin"%>

och i databasen finns antingen rank 1,2 eller 3 så ska den automatiskt sätta rank beroende på siffra

 

Mvh //Dashi

 

Länk till kommentar
Dela på andra webbplatser

ERh, fattar inte alls var du vill göra...

 

<%="skriver ut lite text lalalaa"%>

<%=RS("fältnamn")%>

 

<%="Lite text och från databas: " & RS("fältnamn")%>

 

 

Vad är det nu du vill skriva ut?

 

Vilket värde finns i tabellfältet RS("rank")

 

Hur skall det presenteras?

 

 

Tog så lång tid så jag gissar

om RS("rank") är :

1, då skriv ut "Medlem"

2. då skriv ut "VIP"

3. Då skriv ut Admin?!

 

<%

SELECT CASE RS("rank")

Case 1 Response.Write "Medlem"

Case 2 Response.Write "VIP"

Case 3 Response.Write "Admin"

End SELECT

 

 

%>

 

Är det så?

[inlägget ändrat 2006-04-11 22:48:05 av Jonas_Bo]

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Som Jonas_Bo säger så är det väldigt svårt att veta vad du är ute efter,

Får du felmeddelanden så får du ju berätta vilka dessa är , det kan ingen gissa sig till. Är det felaktiga resultat du får och du vill ha något annat är även detta helt omöjligt för någon att gissa sig till.

 

Precis som i grundskolan så måste man ställa en vettig fråga och här med lite grundfakta om problemet för att kunna förvänta sig ett svar.

 

Vad sjutton betyder "men funka inte heller:"????

 

Länk till kommentar
Dela på andra webbplatser

innan koden har jag följande:

<%

txt_1="Medlem"

txt_2="VIP"

txt_3="Admin"

%>

 

så om man t.ex skriver <%=txt_2%>

så får man ett resultat på: VIP

Och det jag vill är att den ska skriva txt_ innan och sen ska den läsa siffran från databasen men sen ska den skriva ut hela raden med response.write som jag visa här uppe.. alltså först txt_(siffra från databas)

sen <%=kod%>

 

skulle nog kunna gå ihop såhär men inte säker för jag har inte fått ihop den iheller: <%="<%=txt_" & RS("rank") & "%>"%>

 

Länk till kommentar
Dela på andra webbplatser

Jonas_Bo hade väl lösningen på det? ovan!

-----------------------------------------------

Mikael Karlsson

Pluggar Nätadministration/Systemteknik

 

Länk till kommentar
Dela på andra webbplatser

eller, för att krångla till det ännu mer kan du göra en funktion:

<%

'lägg detta exempelvis högst upp i koden/sidan

Function ReturnRank(intRank)

If intRank = "" Then Exit Funktion

SELECT CASE cInt(intRank)

Case 1 strTemp = "Medlem"

Case 2 strTemp = "VIP"

Case 3 strTemp = "Admin"

End SELECT

ReturnRank=strTemp

End Funktion

%>

 

och sedan DÄR du vill presentera rankingen (Medlem/VIP eller Admin) så skriver du:

<%=ReturnRank(RS("rank"))%>

och där du skriver detta ovan måste databasen och recordsetet vara öppet.

 

i Funktionen (koden ovan) behövs detta INTE.

 

Lycka till!

 

Länk till kommentar
Dela på andra webbplatser

nej jonas förslag va inte det jag letar efter..

jag har en fil som heter root.asp som jag har include på i den står det (kan komma fler)

<%

txt_1="Rank1"

txt_2="Rank2"

txt_3="Rank3"

txt_4="Rank4"

txt_5="rank5"

%>

 

oki då va de löst.. ni hänger med änsålänge?

skriver jag <%=txt_3%> i den den andra filen då (inte root.asp utan en annan) så skriver den ut Rank3.

 

Och det är så jag vill att den ska fortsätta att göra förutom att den ska räkna ut siffran från databasen :)

 

hänger ni med? :P

 

så om det står 3 i databasen så ska den skriva ut <%=txt_3%>

vilket då ska resultera till som att jag skulle skriva direkt <%=txt_3%> och det ger mig Rank 3

 

Nu hoppas jag ni förstår :)

 

Länk till kommentar
Dela på andra webbplatser

bra exempel :P

resultatet blev precis som jag ville kan man finslippa koden lite här e resultatet kan man fixa till den till en liten rad? :P

<%Execute("Response.Write txt_" & RS("Rank"))%>

 

vill få det som t.ex:

<%="txt_" & RS("Rank")%>

Denna funkar inte resulterar då till txt_1

 

[inlägget ändrat 2006-04-11 23:45:18 av Dashi]

Länk till kommentar
Dela på andra webbplatser

Nej jag förstår verkligen inte varför du skall krångla till det så...

 

Och var snäll och använd en korrekt meningsuppbyggnad. Du har väl punkter och komman på ditt tangentbord?

 

Skall det stå "Rank2" eller vad vill du att sidan skall skriva ut?

 

Function ReturnRank(intRank)

If intRank = "" Then Exit Funktion

SELECT CASE cInt(intRank)

Case 1 strTemp = "Rank1"

Case 2 strTemp = "Rank2"

Case 3 strTemp = "Rank3"

Case 4 strTemp = "Rank4"

Case 5 strTemp = "Rank5"

End SELECT

ReturnRank=strTemp

End Funktion

[inlägget ändrat 2006-04-12 17:36:26 av Jonas_Bo]

Länk till kommentar
Dela på andra webbplatser

Du försöker adressera dina färdiga variabler genom att skriva variabelnamnet dynamiskt.

 

för att koden skall fatta att det är en variabel och inte ren text den skall skriva ut, så måste du använda dig av Execute som i Anjunas exempel:

txt_1="test"
No=1
Execute("Response.Write txt_" & No)

där No skulle vara din rank.

 

När du skriver

<%="txt_" & RS("Rank")%>

så skriver du EGENTLIGEN

response.write "txt_"&rankingsiffran

 

Du skriver alltså ut ren text, du skriver inte ut innehållet i variablen som råkar ha samma namn som den textsträng du just skriver ut.

 

Jag håller dock med Jonas om att du krånglar till det...

Låna hans funktion där du skickar in din ranksiffra och får ut det resultat som du idag har i din includefil. Grymt mycket smidigare..

 

Länk till kommentar
Dela på andra webbplatser

Svar till Jenny R:

Jag är medveten om det ja, raden som jag skicka med längst ner var ett exempel, t.ex är förkortning för Till exempel, och min fråga va om man kan göra raden lite mindre? inget annat, så du svarar på saker jag inte ens frågat om och som jag är medveten om läs igenom mitt inlägg igen så kanske du förstår.. och nej jag krånglar inte till det, utan tvärt om, vet ni inte så mycke om sidan man jobbar på så tycker jag inte ni ska utala er om att det är krångligt.

 

Om jag ska använde denna kod på 10 olika sidor, vad väljer man? skriva allt i en fil en enda gång, sätta den lilla koden och en inklude? eller skriva ca 7 rader med kod i varje sida? väljer man att använda så mycket kod som möjligt så är man bara allmänt korkad, jag gör en hemsida som ska inehålla så lite kod som möjligt och som ska vara lätt läst när man kollar igenom koden, vilket den inte blir med en massa onödig kod, och vill jag sedan ändra rank namn så måste jag gå in på alla 10 sidor och göra detta istället för att endast gå in på includen och ändra 1 gång, så man sparar mycke mer tid. Har man sedan 30 webbsidor att vara administatör för då är det ca 300 filer som ska ändras på kod istället för 30, så tänkt efter innan du skriver en sådan kommentar.

 

Svar till Jonas_Bo:

 

Va? har du läst inlägget som jag skrev senast? själva koden är redan löst vill bara få kodraden mindre och det du har skrevit gör det bara 10 gånger längre. så det är inte svaret på min fråga.

Och sen så förstår du inte varför jag ska krångla till det? 1 det blir renare, snyggare och lättare att läsa, förstå och det sparar enormt mycket tid+man lär sig mer, jag gör inte bara en sida, jag vill lära mig samtidigt, annars hade det varit slöseri på tid och väldigt idiotiskt.

 

Och ja jag har komman och punkter på mitt tangentbord, har inte du det?

Sålänge jag inte skriver en jobb ansökan eller roman så bryr jag mig inte så mycket om meningsuppbyggnad, eller finns det någon speciel regel här på forumet som säger att man måste skriva professionelt för att införa ett inlägg? om det inte finns det så va det en onödig och korkad kommentar.

 

 

Och ni båda 2 borde tänka efter lite grann innan ni skriver nästa gång, svara på det som frågas och skriv inte en massa onödigt skit som inte ens har med tråden att göra..

 

Tack för mig.. Mvh //Dashi

 

Länk till kommentar
Dela på andra webbplatser

Dashi

 

Istället för att ha din textfil som include så lägger du funktionen i en fil som includeras... På det viset slipper du kopiera den femtioelva gånger (vilket mycket riktigt hade blivit extremt jobbigt), men du kan alltid anropa den iom inkluderingen.

Det enda du behöver på dina övriga sidor är raden med include (som du redan har) samt anropet till funktionen, som då skriver ut det som gäller för den siffran du skickat in.

 

Jag är också medveten vad det var du efterfrågade (en kortare rad än den som började med Execute) och det var det jag försökte förklara för dig att - det går inte, plus att jag försökte ge en pedagogisk förklaring till varför det inte gick. Antar dock att den inte var så pedagogisk eftersom du inte förstod.... så - jag har svarat på det du frågade, men jag kunde nöjt mig med att skriva "nej det går inte" istället för att förklara för dig varför, men jag trodde du ville veta mer.

jag gör inte bara en sida, jag vill lära mig samtidigt, annars hade det varit slöseri på tid och väldigt idiotiskt.

Oj, du ville tydligen veta mer? Fast du vill inte höra förklaringarna..? Jaja... det blir en intressant ekvation. ;)

 

Sålänge jag inte skriver en jobb ansökan eller roman så bryr jag mig inte så mycket om meningsuppbyggnad, eller finns det någon speciel regel här på forumet som säger att man måste skriva professionelt för att införa ett inlägg?

 

Inte alls, men det underlättar att ha ett ordentligt språk när man vill förklara sig, annars blir det lätt både tråkiga ord och onödiga formuleringar.

 

 

 

Länk till kommentar
Dela på andra webbplatser

jag har ingen textfil i include det är en asp fil, för att variblerma ska funka måste det va asp taggar i filen.. jo jag förstog det, men varför ersätta redan befintliga koder med helt nya?

 

Det enda jag behövde va det som Anjuna Moon skicka ett exempel på sen undra jag om man kunde göra raden mindre, för den nya hemsidan jag försöker göra nu försöker jag använda så lite kod på som möjligt för att se hur pass mycke jag kan komprimera data...

 

okej, men execute kan man ju låta vara kvar men om man tar ett exempel <%=%> är samma sak som <%response.write%> och därför jag undra om man kunde få in det istället för response.write som står i raden men fick inte ihop det, så därför jag ställde den frågan, och varför resultaten blir så som den blir med den raden jag skicka det vet jag, men det var som sagt bara ett exempel :)

 

Jag vill lära mig mer om det jag inte kan, mina frågor är en del av det som jag inte kan, din förklaring visste jag redan om därför va inte det lärorikt :)

 

jo men när man bara skriver en kort och snabb förklaring tänker man inte så mycke på meningsuppsats, jag skriver mycke med folk över internet och man använder väldigt sällan, komman och punkter det brukar vara självklart att folk förstår, iallafall dom jag skriver med vilket omfattar en väldigt stor siffra...

 

Ursäkta om det verkade otrevligt men det känns rätt irriterande när folk utrycker att man gör onödiga saker eller som jonas och du sa att man krånglar, utan att dom vet vad ens mål är med att man vill ha det på det sättet man frågar efter och sedan svarar med 3 ord på ens fråga och resterande 200 ord avser något man inte ens har frågat om, hade jag velat ha t.ex jonas lösning på det hela hade jag sökt upp det på google istället, finns ett stort utbud på Case :)

 

 

Och dessutom tycker jag personligen att det är ett väldigt klumpigt sätt att använda case, så mycke kod för en liten funktion.

 

Mvh //Darek

[inlägget ändrat 2006-04-13 18:50:30 av Dashi]

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
<%=%> är samma sak som <%response.write%> och därför jag undra om man kunde få in det istället för response.write

Det enda du skulle kunna göra (om syftet är att få ner kodraden i längd) är att lägga en sub med ett kort namn på sidan som du anropar där det behövs.

 

Exempel:

<%
sub o(No)
Execute("Response.Write txt_" & No)
end sub
%>

 

I koden skulle du alltså sedan kunna ersätta

<%Execute("Response.Write txt_" & RS("Rank")%>

med

<%o RS("Rank")%>

 

Kortare rader alltså, men någon skillnad i hastighet kommer du med största sannolikhet inte kunna uppmäta.

 

Länk till kommentar
Dela på andra webbplatser

okej, känns nog som en omväg då, tror nog det är enklare att ha kvar den koden man har då :) tack för exemplet.

 

Men en sak jag undrar över.

Varför kan man inte ersätta Response.write med ett "=" i detta läget?

funkar ju fint annars, har inte kommit underfull med det :)

 

Mvh //Dashi

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon
Varför kan man inte ersätta Response.write med ett "=" i detta läget? funkar ju fint annars, har inte kommit underfull med det :)

Därför att det inte är =-tecknet i sig som fungerar som ett response.write-kommando, utan hela konstruktionen av <%= xxxx %> som talar om för kompilatorn att dumpa resultatet av det innehållande uttrycket till sidan.

 

Alternativt kan du se det som att <%= är en kortform för <% response.write, och du kan ju inte få in Execute runt denna kortform.

 

Länk till kommentar
Dela på andra webbplatser

aha okej då förstår jag, och det är för att execute koden måste vara inom parranteser men respons.write fungerar bara som förkortning om man använder "=" tecknet i sammanband med asp tag "<%", om jag har förståt det hela rätt? :)

 

Länk till kommentar
Dela på andra webbplatser

okej bra då förstår jag, tack för hjälpen och tack för exemplet som du gav mig där uppe så jag kunde få en lösning på det hela med min befintliga kod :)

 

Mvh //Dashi

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...