Avatar billede baronen20 Nybegynder
05. december 2001 - 08:33 Der 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?
Avatar billede baw Nybegynder
05. december 2001 - 08:54 #1
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>
Avatar billede baw Nybegynder
05. december 2001 - 08:55 #2
Dette kræver at siden bliver submittet via et JavaScript og ikke ved REFRESH
Avatar billede baronen20 Nybegynder
05. december 2001 - 09:07 #3
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).
Avatar billede baw Nybegynder
05. december 2001 - 09:16 #4
Hvis det er muligt i dit script, at lægge et javascript ind kan du bruge document.form.submit(); når siden skal opdateres.
Avatar billede baronen20 Nybegynder
05. december 2001 - 09:31 #5
Her er scriptet der opdaterer.

<%
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...
Avatar billede baw Nybegynder
05. december 2001 - 09:48 #6
Dette script opdatere siden hvert 3 sekund.

<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=\">
Avatar billede baronen20 Nybegynder
05. december 2001 - 12:13 #7
Det hjalp ikke...

Jeg har løst problemet ved at ændre \"meta....=\"70;URL..> til 300.

Du får pointene alligevel (som tak for hjælpen)

:)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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