05. december 2001 - 08:33Der er
6 kommentarer og 1 løsning
Form data må ikke slettes
Jeg har en side, der automatisk opdateres en gang i minuttet. Når man f.eks. skriver i min gæstebog, og siden opdaterer mens man skriver, så slettes alt data man har skrevet (inden man har trykket \"submit\"). Hvordan forhindrer man at data slettes når siden opdaterer?
Hvis du bruger en asp fil, kan du i et INPUT felt skrive: <INPUT TYPE=\"text\" NAME=\"frmName\" VALUE=\"<%=Request.From(\"frmName\")%>\"> og i et TEXTAREA: <TEXTAREA NAME=\"frmMessage\"><%=Request.From(\"frmMessage\")%></TEXTAREA>
Nope, det virker ikke... Når siden refresher så forsvinder alt det man har indtastet. Dvs. man har ca. 60 sek. til at få skrevet oplysningerne og trykket \"submit\"!
Grunden til at siden opdaterer 1 gang i minuttet er, at min \"online brugere\"-tæller ikke fungerer med global.asa (og derfor bruger et alternativt script, der opdaterer siden jævnligt for at tjekke for antal brugere).
<% timeout_sek = 70 \' timeout i sekunder max_users = \"500\" \' max antal brugere der skal tælles cookies_check = \"no\" \' skal der tjekkes om browseren accepterer cookies [\"yes\" / \"no\"] Session.Timeout = 2
if session(\"usernumber\") <> \"\" then application(\"usersonline_\" & session(\"usernumber\")) = now else if InStr(1, request.servervariables(\"HTTP_COOKIE\"),\"ASPSESSIONID\", 1) <> 0 or cookies_check = \"no\" then \'Browseren understøtter cookies (eller der tjekkes ikke for om browseren acceptere cookies) For i = 1 to max_users if IsDate(application(\"usersonline_\"&i)) or application(\"usersonline_\"&i) = \"\" then if application(\"usersonline_\"&i) = \"\" then session(\"usernumber\") = i i = max_users elseif DateDiff(\"s\",application(\"usersonline_\"&i),Now) > timeout_sek then session(\"usernumber\") = i i = max_users end if end if next application(\"usersonline_\"&session(\"usernumber\")) = now application(\"userinfo_\" & session(\"usernumber\")) = \"[\" & Request.ServerVariables(\"REMOTE_HOST\") & \"]</td><td nowrap>[\" & Request.ServerVariables(\"HTTP_ACCEPT_LANGUAGE\") & \"]</td><td nowrap>[\" & now & \"]\" if application(\"usersonline\") < session(\"usernumber\") then application(\"usersonline\") = session(\"usernumber\") end if elseif request(\"mode\") <> \"check\" then response.redirect Request.ServerVariables(\"SCRIPT_NAME\") & \"?mode=check\" else \'Browseren understøtter ikke cookies response.write \"Din browser understøtter ikke cookies\" end if end if
if request.form = \"\" then response.write \"<meta HTTP-EQUIV=\"\"REFRESH\"\" CONTENT=\"\"70;URL=\"\">\" end if %>
Nu har jeg prøvet at ændre \"meta refreshen tingen\" til 5 minutter...
<script language=\"javascript\"> <!--- var timeInterval = 3000; function updateForm(){ alert(\"Denne side opdateres igen om \"+(timeInterval/1000)+\" sekunder.\"); document.form.submit() } myTimeout = setTimeout(\"updateForm()\", timeInterval); // --> </script>
Prøv med det i stedet for \"<meta HTTP-EQUIV=\"REFRESH\" CONTENT=\"70;URL=\">
Jeg har løst problemet ved at ændre \"meta....=\"70;URL..> til 300.
Du får pointene alligevel (som tak for hjælpen)
:)
Synes godt om
Ny brugerNybegynder
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.