Avatar billede websharx Nybegynder
30. juni 1999 - 17:25 Der er 12 kommentarer og
1 løsning

Increase input field value via ASP?

Hvordan klare man følgende opgave?

En asp side der indeholder et input felt med et tal i der forøges hvergang en ASP koden looper ..

<HTML>
<BODY>
<FORM NAME="frmCount">
<INPUT TYPE="text" VALUE="0" NAME="fldCount">
</FORM>

<% Do while not RS.Eof
    [ ASP statements ... ]
    fldCount = fldCount + 1
    RS.MoveNext
  Loop
%>

</BODY>
</HTML>

Jeg er godt klar over det ikke er så simpelt - men det giver en idé om hvad det er jeg ønsker ..


websharx/a-online.dk
Avatar billede websharx Nybegynder
30. juni 1999 - 17:26 #1
Nævnte jeg forresten idéen er, at man ka' se input feltet increase mens ASP siden bliver fortolket?

websharx/a-online.dk
Avatar billede a1a1 Novice
30. juni 1999 - 17:48 #2
det er da nemt, hvis jeg har forstået det rigtigt....:)

--side.asp
<%
Response.Buffer = True
If Request.QueryString("tal") = "" Then
nr = 1
Else
nr = Request.QueryString("tal") + 1
End if
Response.Write "<A HREF='side.asp?tal=" & nr & "'>klik her for næste nr</A>"
Response.Write "<INPUT TYPE=TEXT VALUE='" & nr & "'>"

Response.Flush
---
Resten af din asp

%>

??


Avatar billede websharx Nybegynder
30. juni 1999 - 18:02 #3
Nope - du har ikke forstået det helt rigtigt .. =)

Lad mig lige cut/paste det ud i pap ;)

Forstil dig du skal loope igennem 19000 records, af en eller anden årsag der er ligegyldig her.

Det tager et stykke tid - for at brugeren ikke skal tro den er gået ned, og smutter videre til en anden side (hvilket vil betyde fejl på serveren) - vil jeg indikere hvilken record den er kommet til ved at skrive det ud i et inputfelt.

<%
  Do while not RS.Eof
    [ ASP statements ... ]
    %>
    <SCRIPT LANGUAGE="javascript">
    document.frmCount.fldCount.value + 1
    </SCRIPT>
    <%
    RS.MoveNext
  Loop
%>

Avatar billede ulrik Nybegynder
30. juni 1999 - 18:17 #4
Jeg tror ikke det kan lade sig gøre, da det bliver lavet på serveren og derefter bliver det sendt ud til browseren!!! ASP er jo noget der kører på serveren ikke ligesom javascript som browseren kør!!
Avatar billede Slettet bruger
30. juni 1999 - 19:10 #5
Det skal laves i et client side script..!
Avatar billede mukke Nybegynder
30. juni 1999 - 20:32 #6
<HTML>
<HEAD>
<SCRIPT>
taeller = 0;
function go
{
  frmCount.value = taeller++;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="frmCount">
<INPUT TYPE="text" VALUE="0" NAME="fldCount">
</FORM>
<SCRIPT>
<% Do while not RS.Eof
    [ ASP statements ... ]
%>
    go;
<%
  RS.MoveNext
  Loop
%>
<SCRIPT>
</BODY>
</HTML>
Avatar billede mukke Nybegynder
30. juni 1999 - 20:34 #7
Duh..... der var en lille fejl:

functionen go skal være:

function go
{
  fldCount.value = taeller++;
}
Avatar billede websharx Nybegynder
01. juli 1999 - 12:31 #8
Mukke -- det er vel mere eller mindre den teknik jeg skal bruge, men som Ulrik er inde på, så sker det på serveren, er der nogle måde hvormed man ka' undgå det? .. andre idéer?

websharx/a-online.dk
Avatar billede a1a1 Novice
01. juli 1999 - 13:58 #9
<% Response.Buffer = True %>
<HTML>
<BODY>
<FORM NAME="frmCount">
<INPUT TYPE="text" VALUE="0" NAME="fldCount">
</FORM>
<% tal = 1 %>
<% Do while not RS.Eof

    [ ASP statements ... ]
    fldCount = fldCount + 1
tal = tal + 1

Response.Write tal & "<BR>"
Response.Flush

  RS.MoveNext
  Loop
%>

</BODY>
</HTML>
--
Den udskriver løbende tallet
(du kan ikke lave det i en tabel, vist noget med at den skal færdig renderes (fra server))


nu er jeg ikke den stor javascript haj men man kan vel lave en funktion der siger noget lign:
hvis tallet er et produkt af 10
(i ti tabelen), man kan vel også lave det til hvergang men så skal den loade hele tiden (du vil vel bare have en slags status ???)

så:
document.frames[enanden].href='fil.asp?tal=" & tal & "';
--betyder på dansk:
indlæs fil.asp i anden frame, send tal med (?tal=" & tal & ")

funktionen skal være i stedet for response.Write tal

----
fil.asp
<%
Response.Write Request.QueryString("tal")
%>
---

kan ideen bruges??

;)
Avatar billede mukke Nybegynder
01. juli 1999 - 20:42 #10
WebSharx: I det jeg lavede gør den netop det at efterhånden som den får sig arbejdet igennem sendes en lille smule til klienten - Dette er som et javascript hvormed opnås det ønskede.

Har du prøvet det?

Der kan være to problemmer: 1) hvis serveren cacher sit output vil den først sende det når scriptet alligevel er færdigt - det er der hvis ikek noget at gøre ved med mindre du kan snakke med en ansvarlig for serveren. 2) Som det er nu vil der bliver sendt nogle få bytes per post. Man kunne evt. rafinere det så den kun sender per ti poster gennemløbet for at mindske mængden af data der skal overføres.
Avatar billede mukke Nybegynder
01. juli 1999 - 20:47 #11
Mht til cahcing - det kan undgås (hvis det er et problem) ved at have FØRSTE linie i scriptet til at være:

<% Response.Buffer = false %>
Avatar billede websharx Nybegynder
02. juli 1999 - 10:16 #12
Jeg har prøvet at lege med det, men den ændre først inputfeltet efter den har været hele ASP siden igennem ..

Men under alle omstændigheder synes jeg du fortjener points alligevel, tusinde tak for hjælpen! Og så prøver jeg lige med Response.Buffer = false
Avatar billede mukke Nybegynder
02. juli 1999 - 23:12 #13
Mange tak skal du have. Selvom jeg vel egentlig ikke fortjener dem hvis det ikke fungerer som ønsket.....

Med hensyn til response.buffer - Jeg har læst lidt og jeg tror egentlig ikke det vil hjælpe.
Ifølge:
http://msdn.microsoft.com/library/sdkdoc/iisref/vbob1fsi.htm
Er =false stadard for iis op til og med version 4 - det er tilsyneladende først fra 5 det er nødvendigt.
Men lad mig endelig vide om det aligevel skulle virke (Det er vel muligt at det fra severens side er sat til det andet som standard :)
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

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