Avatar billede phrozia Juniormester
14. april 2013 - 13:31 Der er 10 kommentarer og
1 løsning

Bekræft ændringer inden siden forlades

Hejsa

Jeg sidder med en lille side hvorpå man kan ændre og opdatere brugerinformation. Dog ville jeg gerne lave en sikring imod, at folk ændre noget og så navigere væk fra siden og glemmer at trykke "opdater".

Kan man ikke fremstille noget JS som enten altid beder en om at bruge submit eller en annuller knap, eller som kun alerter hvis indholdet af felterne er anderledes end da siden blev loaded og man forsøger at navigere væk uden brug af submit/cancel?

HTML er som følger (value indholdet bliver indlæst via php).

<form action="index.php?page=pages/user_edit.php" method="post" class="form">

Navn: <input name="name" size="75" value="1" ><br>
Adresse: <input name="address" size="75" value="1" ><br>
Post nr: <input name="zipcode" size="3" value="1" ><br>
By: <input name="city" size="61" value="1" ><br>
E-mail: <input name="email" size="75" value="1" readonly="readonly" class="field_readonly"><br>
Telefon: <input name="phone" size="75" value="1" ><br>

<input type="submit" name="submit" value="Opdater brugerinformation!">
</form>
Avatar billede olebole Juniormester
14. april 2013 - 14:22 #1
<ole>

Hvorfor? Mon ikke dine brugere er nogenlunde gennemsnitligt begavet? I så fald er kræfterne nok langt bedre givet ud på at forbedre indholdet, designet - eller hvad somhelst andet  =)

Du kunne gøre, som andre gør: Skriv en besked om, at informationerne skal gemmes for at træde i kraft. Så burde der vel være taget højde for de tungeste.

En evt. løsning vil være bøvlet - også at vedligeholde, hvis du f.eks. på et tidspunkt skulle finde på at ændre en smule i formen. Drop det og brug tiden mere hensigtsmæssigt  *o)

/mvh
</bole>
Avatar billede phrozia Juniormester
14. april 2013 - 14:31 #2
Det er en feature som specifik er efterspurgt så har valgt at imødekomme dem. Tænker at løsningen hvor den altid alerter hvis siden lukkes med andet end submit, må være den nemmeste?
Avatar billede olebole Juniormester
14. april 2013 - 14:48 #3
Da du ikke ved, hvordan det løses, eller hvad en løsning har af implikationer, har du næppe informationer nok til at imødekomme kravet. Hvem efterspørger den løsning?
Avatar billede phrozia Juniormester
14. april 2013 - 15:19 #4
Det gør brugerne af siden. De vil gerne sikre sig, at hvis/når folk opdatere noget i formen, husker de at trykke opdater(hvorefter informationen i mysql db opdateres). Jeg er med på at det er lidt usædvanlig og en normal tekst med "husk at gemme" burde være nok, men brugerne insiterer. Mit JS er desværre relativt ringe, så håbede på hjælp fra eksperten :)
Avatar billede olebole Juniormester
14. april 2013 - 15:35 #5
Jamen, er siden din eller brugernes? Man skal ikke lefle for sine brugere og give dem ret i alt. Det er dig, der udvikleren. Du ved, hvad der er rigtigt og forkert  *o)
Avatar billede phrozia Juniormester
14. april 2013 - 15:45 #6
Den er lavet til brugerne for brugerne (men ja, jeg koder den). Jeg er enig og har også bokset lidt med dem, men man må jo vælge sine kampe og de får lov at vinde denne. Må nok indrømme, at jeg tænkte at sådan et alert script var simplet :)
Avatar billede olebole Juniormester
14. april 2013 - 15:59 #7
Jamen, det er ikke rigtig tænkt. Men da vi jo alle selv vælger vores kampe, vælger jeg denne fra  =)
Avatar billede phrozia Juniormester
16. april 2013 - 21:15 #8
Følgende smides i head taggen:

    <script language="JavaScript">
      var needToConfirm = true;
     
      window.onbeforeunload = confirmExit;
      function confirmExit()
      {
        if (needToConfirm)
          return "Du forlader nu siden. Hvis du har lavet nogle ændering og du ikke klikker på opdater, bliver disse ændering ikke gemt! Er du sikker på at du vil forlade siden?";
      }
    </script>

og submit ændres således den ikke alerter

<input type="submit" name="submit" onclick="needToConfirm = false;" value="Opdater brugerinformation!">
Avatar billede olebole Juniormester
16. april 2013 - 21:42 #9
#8 ja, det er ikke noget problem - men det løser jo ikke problemet. Opgaven lyder som følger:

"Kan man ikke fremstille noget JS som enten altid beder en om at bruge submit eller en annuller knap, eller som kun alerter hvis indholdet af felterne er anderledes end da siden blev loaded og man forsøger at navigere væk uden brug af submit/cancel?"

Det kræver væsentligt mere end din kode  *o)
Avatar billede phrozia Juniormester
17. april 2013 - 16:51 #10
Korrekt.

Men selvom det er anderledes end den oprindelige opgave, så går det an og løser om ikke andet problemet i, at folk kan forlade siden uden at være obs på at eventuelle ændering går tabt.
Avatar billede olebole Juniormester
17. april 2013 - 17:30 #11
Vi tales ved, når brugerne bliver tilstrækkelig irriteret over dén løsning  *o)
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