Avatar billede jeffe Nybegynder
13. januar 2003 - 18:24 Der er 22 kommentarer og
2 løsninger

Nedtælling i ASP

Hej !

Jeg har brug for at den asp-side man er på (en formular-side med db-forbindelser) automatisk gør noget hvis man er for længe om det. Lad og sige 30 sekunder. Altså, man har 30 ssekunder til at udfylde formen "else" et eller andet.

Desuden skal der stå på skærmen hvor mange sekunder der er tilbage, hvis det kan lade sig gøre med ASP. Dvs, den tælller ned. -1 hvert sekund.

Kan dette lade sig gøre?

/Jeffe

P.S. 100 point da det haster lidt...
Avatar billede whatever Nybegynder
13. januar 2003 - 18:26 #1
Det kan ikke lade sig gøre med et serverside sprog. Du er nød til at lave det på klienten med f.eks. javascript. Men så kan bruger bare trykke stop i browseren :-)
Avatar billede angam Nybegynder
13. januar 2003 - 18:26 #2
Jeg ville umiddelbart lave det i java script: starte en timer med ét sekunds interval, der talte ned til 100. Med JavaScript kan du jo også udskrive værdien på skærmen.

Håber det var svar nok - ellers prik til mig her :-)
Avatar billede whatever Nybegynder
13. januar 2003 - 18:26 #3
Ups. svar
Avatar billede jeffe Nybegynder
13. januar 2003 - 18:31 #4
Heh, jeg forlanger en brugbar kode eller lign. for point...sorry dudes, men tak for hjælp so far.
Kender i noget til JS?
Avatar billede angam Nybegynder
13. januar 2003 - 18:35 #5
Nåja - nu har jeg alligevel lavet scriptet (ganske simpelt), så må du selv implementere det pænere :-)
Her får du 100 sekunder til at udfylde streng-feltet. Når du submitter, kommer der et andet parameter med: c. Hvis c er nul, er brugeren for langsom :-)


<html>
<head>
<script language=javascript src="chat.js"></script>
<script language=javascript>
    var intervalId;
    var refreshRate = 1000;
    var htmlCounter;

    function countdown_start() {
        htmlCounter = 100;
        document.testform.c.value=htmlCounter--;
        intervalId = setInterval(countDown, refreshRate);
    }

    function countdown_stop() {
        clearInterval(intervalId);
    }

    function countDown() {
        document.testform.c.value=htmlCounter--;
        ctime.innerHTML = htmlCounter;
        if(htmlCounter < 0) {
            countdown_stop();
            alert('Time is up!');
        }
    }
</script>

</head>
<body onLoad="countdown_start();">
<form name=testform action="" method="get">
<input type=hidden name=c value=0>
<input type=text name=t value="">
<input type=submit value="Submit">
<span nname=ctime id=ctime>&nbsp;</span>
</form>
</body>
</html>
Avatar billede oasen Nybegynder
13. januar 2003 - 18:36 #6
Forlanger? Mener du ikke "ønsker"? :o)

Prøv at kigge ind til javasript-hajerne..
Avatar billede jeffe Nybegynder
13. januar 2003 - 18:36 #7
prøver lige
Avatar billede angam Nybegynder
13. januar 2003 - 18:37 #8
En lille kommentar: Linien '<script language=javascript src="chat.js"></script>
' skal naturligvis ikke være tilstede - det var lidt cut'n'paste fra et andet projekt jeg havde kørende ... den gør ingen skade andet end at fylde (i IE ihvertfald).
Avatar billede jeffe Nybegynder
13. januar 2003 - 18:39 #9
Jeg har aldrig brugt JS, gider du forklare mig hvor jeg skal indsætte koden for hvad der sker hvis tiden rinder ud? - Eller ja, jeg ved hvor det er (i stedet for alert('Time is up!')) men kan jeg eksempelvis indsætte <%asp%> der ?
Avatar billede oasen Nybegynder
13. januar 2003 - 18:42 #10
Yes...
Avatar billede angam Nybegynder
13. januar 2003 - 18:43 #11
Nej, da det jo foregår på klient-siden.
Funktionen gør ikke noget (andet end at lave en popup) når tiden udløber.
Hvis du vil have scriptet til at fortælle dig når tiden er udløbet, kan du erstatte countDown-funktionen med dette:

    function countDown() {
        document.testform.c.value=htmlCounter--;
        ctime.innerHTML = htmlCounter;
        if(htmlCounter < 0) {
            countdown_stop();
            document.testform.c.value=-1;
            document.testform.submit();
        }
    }

Nu skal du blot teste på parametret 'c'. Hvis 'c' er (-1), er det javascriptet der submitter (og altså brugeren der er for langsom).
Avatar billede oasen Nybegynder
13. januar 2003 - 18:44 #12
Han kan da sagtens generere en meddelelse med ASP.
Avatar billede jeffe Nybegynder
13. januar 2003 - 18:44 #13
Hvordan redirecter jeg? i stedet for alert ?
Avatar billede oasen Nybegynder
13. januar 2003 - 18:45 #14
self.parent.location.href = 'en_side.asp'
Avatar billede angam Nybegynder
13. januar 2003 - 18:46 #15
oasen > Jamen ASP-outouttet bliver ikke betinget af Javascriptet. Så skal han generere javascript fra ASP (hvilket jo godt kan lade sig gøre, men næppe det Jeffe ønsker!)

jeffe > Den sidste løsning jeg skrev (den opdaterede funktion) submitter tilbage igen. Du kan også lave en "ubetinget" redirect med

  document.location.href='error.asp';
Avatar billede oasen Nybegynder
13. januar 2003 - 18:51 #16
Nej, men det kunne jo være han ønskede en meddelelse til brugeren, såsom "Let så røven, Peter!". Og det kan han ikke lave med javascipt alene.

alert('<% = Session("Username") %>');

- eller

<%
Response.Write vbCrlf & "alert('" & Session("Username") & "');" & vbCrlf
%>
Avatar billede jeffe Nybegynder
13. januar 2003 - 18:51 #17
Angam: Tæt på at være godt nok nu :)

JEg mangler lige én enkelt ting. Grafisk fremvising af tiden tilbage. DVS, tallene skal og tikke ned...kan du det ?
Avatar billede angam Nybegynder
13. januar 2003 - 18:52 #18
oasen > Jamen hans ASP bliver jo ikke betinget af Javascripten - men bliver _altid_ udført uanset hvad. Du kan ikke med en javascript-If sætning starte ASP-kode (eller omvendt).
Avatar billede jeffe Nybegynder
13. januar 2003 - 18:55 #19
Hvad er <span nname=ctime id=ctime> ?
Avatar billede oasen Nybegynder
13. januar 2003 - 18:55 #20
Det er jeg udmærket klar over. Jeg taler heller ikke om Javascript-variabler. Jeg giver et eksempel på, hvordan han genererer javascript med brug af ASP-variabler ;)
Avatar billede angam Nybegynder
13. januar 2003 - 19:03 #21
jeffe > Kigger på det om 30 minutter - skal lige spise :-)
Avatar billede jeffe Nybegynder
13. januar 2003 - 19:04 #22
SÅDAN: Nu virker scriptet (først nu ja, jeg fatter minus af det) :)
Nu skal det bare lige tilpasses 100%...Tusind tak for hjælpen...
Avatar billede angam Nybegynder
13. januar 2003 - 19:32 #23
Ok - så vil jeg ikke kigge yderligere på scriptet - ellers må du lige kontakte mig (icq: 2522707)
Avatar billede jeffe Nybegynder
13. januar 2003 - 19:57 #24
ok, tak !
Kan være jeg gør det, hvis der er problemer.
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