Как сделать пошаговое добавление информации на сайте?

Тема в разделе "Как сделать...", создана пользователем danneo, 11 дек 2013.

  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    Нужно добавлять информацию на сайт. Сделать пошагово, как в магазинах или авито, вроде. Например, пользователь сначала забивает заголовок и информацию, нажимает далее. Потом забивает адрес и снова далее.
    Потом забивает данные для авторизации или регистрации, и снова далее. А затем все добавляется, а он авторизируется.
    А внизу пояснения, предыдущий и последующий шаг. В общем, как в нормальный интернет-магазинах оформление заказа.
    Где и как хранить информацию между шагами? Да и вообще, принцип работы скрипта, примеры?
     
  2. Apocalipse

    Apocalipse Постоялец

    Регистр.:
    19 май 2007
    Сообщения:
    99
    Симпатии:
    43
    данная, о шагах должна храниться в соответсвующих перемменных. Никогда не замичали на сайте адресс вида: http://вашадресс.ру/filte.php?username=имя&password=пароль&и т.д.
     
  3. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.724
    Симпатии:
    2.100
    это в чём? в голом пхп? использовать wizard библиотеку, ну например
    http://www.yiiframework.com/extension/wizard-behavior/
    http://www.phpclasses.org/package/2084-PHP-Generate-wizard-like-multi-step-web-forms.html
    http://www.phpclasses.org/package/4443-PHP-Generate-wizard-like-Web-user-interface-using-AJAX.html
    что-то поиск правда хрень какуюто находит, но такие фреймворки точно есть, с стейками, разветвлениями и так далее

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

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    чет вы не о том... как вы в get параметры передадите текст статьи, файлы, например?
    не на голом php. В CMS
    в примерах английский. Не пониме я английский.
    насчет скрытия форм на jquery тоже читал... но вроде как с перегрузкой страницы, да и на ajax лучше, чем выводить большую форму и скрывать элементы. Хотя...
     
  5. ev-goo

    ev-goo Создатель

    Регистр.:
    28 май 2012
    Сообщения:
    10
    Симпатии:
    9
    Да где угодно ее можно хранить. Сессии, куки, база данных да и как сохранить вариантов куча.

    Например склеиваешь данные в одну строку как-нибудь так и записывай например в базу.
    PHP:
    $user_data $name "||" $email  "||" $login;
    Затем когда эти данные нужны, достаешь их из базы и разбиваешь функцией explode и используешь. Если же что то нужно в них добавить, добавляешь аналогично как в примере выше.
     
  6. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    Такая проблема...
    решил сделать пошаговое на jquery+CSS - скрывая части формы.
    Проблема:
    пользователь заполнил, отправил. Сервер получил, обработал. Нашел ошибки. И вывел снова форму с сообщениями об ошибках рядом с соответствующим полем.
    Как такое решить скрывая поля формы (при пошаговом)? Как пользователь поймет, где у него ошибка, ведь часть формы скрыта?
    Вижу пока один выход: ajax. Но уж очень не хотелось эти пока замарачиваться... если только как-нибудь в будущем...
    Можно это как-то обойти?
     
  7. AlexZa

    AlexZa Создатель

    Регистр.:
    1 апр 2007
    Сообщения:
    26
    Симпатии:
    1
    Подождите, если вы отдаете ошибки после обработки всей формы на сервере, то что мешает вам написать на первой же странице хотя бы так: "ошибка на 3 шаге"?
     
  8. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    Например, в форме 15 полей. Разбиваю на 5 шагов с помощью скрытия разделов (на jquery). Пользователь заполнил, нажал отправить. Ему возвращаются ошибки с 2, 4, 5 этапа по одному полю в каждом этапе. Как это вывести? Если просто сообщениями в верху формы, то какой смысл в этапах? Ошибки выводятся рядом с полями.
     
  9. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    1. Лучше делать сразу указывая ошибки Для примера я делал так
     
  10. alffcpu

    alffcpu Создатель

    Регистр.:
    23 окт 2013
    Сообщения:
    22
    Симпатии:
    56
    Может я не до конца уловил смысл задумки, но что вам мешает иметь несколько кусков формы и валидировать их с помощью jquery на каждом шагу и открывать далее нужный кусок, может не совсем изящно получится. Типо много надо писать js кода, но в целом когда я сталкивался с подобной задачей я так и делал. Разбиваете на несколько форм и каждую проверяете, а в конце собираете все данные со страницы? С помощью jquery validate проверяете проверяете нужные поля $('#form').valid() - ну что то вроде такого. и если все сходится идете к следующему шагу, а видимую форму скрываете (те текущий шаг). + У jquery validate можно собственные методы добавлять для проверки полей, те по сути при желании можно на сервер вообще ничего не отправлять и аякс тут ненужен, а в конце собираете все данные со страницы и добавите форму к документу и ее засабмитите.