PankovAlxndr
@PankovAlxndr
Fullstack web developer

Как программировать опросы, анкеты?

Здравствуйте, встала задача реализовать опросник для пользователей.

1) Пользователь заходит по определенному адресу и перед ним открываются вопросы по порядку
те 1 - 2 - 3(1 в окне) (после каждого ответа то ли submit, то ли еще чего, вообще действие какое-то, в частотности загрузка и отображение следующего вопроса)

2) После того как он ответил выводиться результат...

Так вот вопрос как построить такую архитектуру?

Допустим 50 вопросов -> 8 результатов опросника...
1) Как вообще (по типовому) происходит это определение результат? (какой-то вес у вопроса или что?)
2) Все на аяксе грузить лучше?
  • Вопрос задан
  • 2737 просмотров
Пригласить эксперта
Ответы на вопрос 2
MarcusAurelius
@MarcusAurelius
автор Impress Application Server для Node.js
Разумных вариантов миллиарды. А идиотских еще больше. Это как спросить, как лучше сделать автомобиль? Если бы был ответ на это вопрос, то была бы одна марка и одна модель.
Я бы советовал сделать описание вопросов на JSON, загружать эти данные со страницей или отдельным запросом, а потом рендерить на клиенте HTML из данных.
[
  { question: "Как Вас зовут?", type: "input" },
  { question: "Существует ли истина?", type: "select", answers: ["да", "нет"] },
  { question: "Как возможна справедливось?", type: "select", answers: ["легко", "трудно", "ни как"] }
]

Еще посмотрите React, чтобы узнать как нужно и Angular, чтобы узнать как не нужно, поколупайте разные клиентские шаблонизаторы. Нужно набраться опыта, чтобы спроектировать это лучьше других.
Ответ написан
Комментировать
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Как вообще (по типовому) происходит это определение результат? (какой-то вес у вопроса или что?)

Как захотите. Формула расчета может быть любой.
Все на аяксе грузить лучше?

Можно использовать ajax, но не вижу смысла
Можно с помощью jquery загрузить все и спрятать все этапы, кроме текущего. Переключать их show() и hide(), а потом либо отослать их на сервер и обработать в php и вывести результат, либо тем же jquery обработать и вывести результат.
Можно делать сабмит после каждого этапа, но надо будет помнить все предыдущие этапы. Это на мой взгляд сложнее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы