簡體   English   中英

如何通過cookie存儲和重新加載動態表單?

[英]How to store and reload a dynamic form via cookies?

我有一個用戶可以添加行的表單。 提交該表單時,我需要將這些值存儲在cookie中,以便在頁面刷新或用戶離開站點並返回時重新加載表單。 我已經有了從javascript構建的表單,我正在尋找某種js或php工具,它將自動存儲和重新加載表單,包括dya = namic生成的表單。

謝謝!

看起來你應該能夠使用jquery的內置表單序列化程序,然后將其保存在cookie中。

//here's a little helper function to set a cookie

function setCookie(key, value, daysUntilExpiration) {
    var expiration = new Date();
    expiration.setTime(expiration.getTime()+(daysUntilExpiration*86400000));

    document.cookie = key + "=" + value + ";expires=" + expiration.toGMTString() + ";path=/";
}

//first, get the serialized data from your dynamic form
var formData = $("#myform").serialize();

//then, save it into a cookie
setCookie("myform", formData, 30); //cookie saved for 30 days

要將其拉出來,您應該能夠簡單地將鍵/值拆分為“=”作為拆分字符,然后循環遍歷每個鍵,並構建表單HTML。

您可以使用PHP的setcookie()函數來保存它們。 這里有一些簡單的功能可以做你想要的。 但是,這僅適用於具有值的輸入。 它不適用於選擇。 確保每個輸入都有不同的名稱,否則這將無效。

function SaveAll() {
    $cookie_expires = 14; // how many days until the cookies expire
    foreach($_POST as $col => $val) {
        setcookie("form_".strtolower($col), $val, time()+(64000 * $cookie_expires));
    }
}

function Load($item) {
    $item = strtolower($item);
    if(!$_COOKIE['form_'.$item]) return null;
    return $_COOKIE['form_'.$item];
}

if($_POST['submit_button_name']) {
    SaveAll();
    echo "All inputs have been saved! <BR><BR>";
}

然后只需在所有輸入中添加這樣的內容即可。

<input name="Item01" value="<?=Load('Item01');?>" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM