2015-10-22 2 views
0

Мне было интересно, у нас есть этот интерфейс, поставляемый третьей стороной. Они сделали дизайн реализованным на PHP-сайте (основанный на симфонии, не имеющий отношения к моей проблеме, я считаю).Форма ввода данных в форме магазина без публикации формы

Проблема в том, что они использовали много Javascript, что приятно для динамических частей. Однако при отправке формы данные передаются через jQuery $ .ajax или post. Значение клиентской стороны никогда не будет хранить вход пользователя для будущего использования, что на самом деле то, что они захотят, поскольку этот интерфейс предназначен для повторного использования каждые x недель или в месяц.

Кто-нибудь знает, есть ли способ сделать форму, как если бы она была опубликована?

В дополнение, пользователь НЕ вошел в систему, и может быть несколько пользователей, хотя это, скорее всего, его частная система или общая для дома. Высокий шанс - это даже мобильное устройство.

+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.

Смежные вопросы