2014-01-08 93 views
0

我有一個註冊表單,但是當頁面刷新時數據丟失並且用戶必須再次輸入數據。即使頁面刷新,我也希望數據保持在那裏。保存表單數據,以便在頁面刷新時不會丟失php

我正在使用serialize函數來序列化表單數據,但現在如何在頁面刷新時打印存儲的值?

setcookie('formdata', serialize($formdata), time()+30*24*60*60); 

但它是在最後保存數據。我希望數據在用戶輸入值時立即存儲,並且如果頁面刷新並且字段已填充,則應填充數據。

+0

您可以使用會話.... – Dinesh

+0

如果頁面剛剛刷新,或者您的表單已提交,萬一發生錯誤,表單數據不會丟失?那是你想要做什麼? –

+0

我不想將數據存儲在服務器上我只想在客戶端存儲 – user3058875

回答

0

不需要用PHP保存cookie,你需要用Javascript/JQuery來完成。
每當用戶在輸入框中鍵入時(.change),都可以執行此操作。

看一看:How do I set/unset cookie with jQuery?

+0

,但如果我再次setCookie(鍵,值)在表單中的每個字段,並檢查它的設置,然後打印值,而窗體加載將它不能正常工作 – user3058875

+0

使用'$ .cookie(cookie,value)'保存使用Javascript的cookie。然後,在加載表單頁面時,使用PHP在輸入框中打印cookie的值。 '$ _ [ 'COOKIE']' – zurfyx

0

你可以使用JavaScript來表單值保存到餅乾。在change事件上使用jquery $ .cookie函數。也可以使用沒有jQuery的javascript

function setCookie(name, value, days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
     var expires = "; expires=" + date.toGMTString(); 
    } 
    else 
     var expires = ""; 
    document.cookie = name + "=" + value + expires + "; path=/"; 
} 

function getCookie(c_name) { 
    if (document.cookie.length > 0) { 
     c_start = document.cookie.indexOf(c_name + "="); 
     if (c_start != -1) { 
      c_start = c_start + c_name.length + 1; 
      c_end = document.cookie.indexOf(";", c_start); 
      if (c_end == -1) { 
       c_end = document.cookie.length; 
      } 
      return unescape(document.cookie.substring(c_start, c_end)); 
     } 
    } 
    return ""; 
} 

只是使用這些函數來存儲和加載cookie的名稱。

相關問題