2014-09-03 3 views
0

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

Что делать, если пользователь просматривает первые несколько страниц отправки формы, включая загрузку файлов, а затем отказывается от отправки формы.

Как мне очистить ненужные данные и загруженные файлы, в то же время убедившись, что я не удаляю его, если они находятся в процессе его публикации.

+0

Использование JQuery или что-то, так что вы только отправить форму один раз? – Daan

+0

как сделать хорошую форму только с 1 шагом, поэтому пользователям не надоедает нажатие «next»? – ViliusL

+0

Что произойдет, если форма действительно длинная, вы хотите проверить каждый элемент одновременно? Форма одной страницы не равна хорошей форме –

ответ

1

Я имел дело с аналогичной проблемой. Моя ситуация была немного иной. Мне нужно было дать пользователю возможность публиковать рекламу и в то же время позволить ему загружать изображения.

Я подошел к этому, поместив скрытое поле в форму, содержащую имена загруженных изображений. Для загрузки я использовал готовую библиотеку dropzone.js, так как у вас уже возникла проблема с оставленным процессом формы. Я просто решил разместить файлы во временном местоположении/temp , а затем, если форма фактически завершена, то на основе значения в скрытое поле Я перемещаю эти изображения из/temp в их постоянное место. Папку остатков в папке/temp можно легко удалить с помощью запланированного задания, которое проверяет время их создания и удаляет те, которые, например, в возрасте дня.

Надеюсь, это даст вам некоторые идеи.

1

Еще одна идея сделать 1 огромную форму, но разделить ее на несколько шагов с помощью JavaScript. Только кнопка на последних вкладках представляет форму, а другие кнопки просто показывают следующий шаг. Вы можете выполнить слабую проверку после «следующего» действия, и сильная проверка на сервере после отправки формы.

http://jsfiddle.net/ht227xy3/1/

<script> 
function switcher(activeBlock, passiveBlocks){ 
    document.getElementById(activeBlock).style.display=''; 
    for (i in passiveBlocks){ 
     if (document.getElementById(passiveBlocks[i])) 
      document.getElementById(passiveBlocks[i]).style.display='none'; 
     } 
    return false; 
    } 
</script> 

<form onsubmit="alert('Now form submits!!!')" action="" method="post"> 
    <div id="first" class="tab"> 
     <h3>Step 1 of 4</h3> 
     <b>Field 1:</b> <input type="text" name="field1" value="" /><br /> 
     <br /> 
     <button type="button" onclick="switcher('second', ['first','third','fourth']);">Next</button> 
    </div> 
    <div style="display:none;" id="second" class="tab"> 
     <h3>Step 2 of 4</h3> 
     <b>Alt 1:</b> <input type="text" name="alt1" value="" /><br /> 
     <br /> 
     <button type="button" onclick="switcher('third', ['first','second','fourth']);">Next</button> 
    </div> 
    <div style="display:none;" id="third" class="tab"> 
     <h3>Step 3 of 4</h3> 
     <b>Extra 1:</b> <input type="text" name="extra1" value="" /><br /> 
     <br /> 
     <button type="button" onclick="switcher('fourth', ['first','second','third']);">Next</button> 
    </div> 
    <div style="display:none;" id="fourth" class="tab"> 
     <h3>Step 4 of 4</h3> 
     <b>File 1:</b> <input type="file" name="file1" /><br /> 
     <br /> 
     <input type="submit" value="Submit" /> 
    </div> 
</form> 
Смежные вопросы