2015-10-22 26 views
0

我想知道,我們有這個前端由第三方交付。他們讓這個設計在一個PHP網站上實現(基於Symphony,與我相信的問題無關)。商店表單輸入數據無需發佈表單

問題是,他們使用了很多Javascript,這對動態部分來說很不錯。但是,在提交表單時,數據通過jQuery $ .ajax或post發送。這意味着客戶端將永遠不會存儲用戶的輸入以供將來使用,這實際上是他們想要的,因爲該前端被設計用於每週或每月再次使用。

任何人都知道是否有辦法讓表單的行爲像是被張貼的?

此外,用戶沒有登錄,並且可能有多個用戶,雖然這可能是他的私人系統,或在家中共享。很有可能它甚至會成爲移動設備。

+0

您是否在談論登錄表單?您可以使用localStorage在本地存儲數據,但這取決於您的要求。 – Rayon

+0

是要填寫表單的相同用戶(瀏覽器),還是不同瀏覽器上的不同用戶? –

+0

爲什麼要將數據存儲在客戶端?爲什麼不把它存儲在服務器端的數據庫中,並在用戶登錄時將其放出? –

回答

0

您需要使用cookie保存表單數據,最好是在提交之後。在使用這樣的東西時,我喜歡使用jquery.cookie。我會做這樣的事情。這隻適用於單個瀏覽器。

$(document).ready(function() { 

    // Fetch the submit_form_input cookie that was set after submitting the form 
    var submit_form_input = JSON.parse($.cookie("submit_form_input")); 

    // Loop through the values inside the cookie 
    for (i = 0; i < submit_form_input.length; i++) { 

     // Find the form with the correct id and set the value on it 
     $("#" + submit_form_input[i].name).val(submit_form_input[i].value); 
    } 

    $("#submit_form").submit(function(ev) { 

     ev.preventDefault(); 

     var url = $(this).attr('action'); 
     var data = JSON.stringify($(this).serializeArray()); 

     $.ajax({ 
       type: "POST", 
       url: url, 
       data: $(this).serialize(), // serializes the form's elements. 
       success: function(response) 
       { 
        // Set the cookie 
        $.cookie("submit_form_input", data); 

        alert('Thank you for submitting the form.'); 
       } 
     }); 
    }); 
}); 

這是JSFiddle