diff --git a/Web/Controllers/QuestionnaireResponseController.cs b/Web/Controllers/QuestionnaireResponseController.cs index ef04688..0bae076 100644 --- a/Web/Controllers/QuestionnaireResponseController.cs +++ b/Web/Controllers/QuestionnaireResponseController.cs @@ -46,6 +46,27 @@ namespace Web.Controllers [HttpPost] public IActionResult DisplayQuestionnaire([FromForm] ResponseQuestionnaireViewModel questionnaire) { + //for (int i = 0; i < questionnaire.Questions.Count; i++) + //{ + // var question = questionnaire.Questions[i]; + // List selectedTexts = new List(); + + // // Assuming SelectedAnswerIds and SelectedTexts are parallel arrays + // for (int j = 0; j < question.SelectedAnswerIds.Count; j++) + // { + // int selectedId = question.SelectedAnswerIds[j]; + // if (question.SelectedAnswerIds.Contains(selectedId)) // Ensure the ID was actually selected + // { + // selectedTexts.Add(question.SelectedText[j]); + // Console.WriteLine($"Selected Text{selectedTexts}") + // } + // } + + // question.SelectedText = selectedTexts; // Now contains only the texts of selected answers + //} + + // Process the updated model further as needed + /* return Json(questionnaire);*/ // Redirect to a results view, or handle as necessary foreach (var question in questionnaire.Questions) { @@ -58,16 +79,15 @@ namespace Web.Controllers var selectedAnswer = dbQuestion.Answers.FirstOrDefault(a => a.Id == selectedId); if (selectedAnswer != null) { - Console.WriteLine($"Selected Answer: {selectedAnswer.Text}"); + Console.WriteLine($"Selected Answer Text: {selectedAnswer.Text}"); + Console.WriteLine($"Selected Answer Id: {selectedAnswer.Id}"); // Here you could further process each selected answer, e.g., saving user responses } } } } - return Ok(); - + return Json(questionnaire); - } diff --git a/Web/ViewModel/QuestionnaireVM/ResponseQuestionViewModel.cs b/Web/ViewModel/QuestionnaireVM/ResponseQuestionViewModel.cs index f309f9b..10f45d0 100644 --- a/Web/ViewModel/QuestionnaireVM/ResponseQuestionViewModel.cs +++ b/Web/ViewModel/QuestionnaireVM/ResponseQuestionViewModel.cs @@ -14,5 +14,7 @@ namespace Web.ViewModel.QuestionnaireVM // IDs of selected answers, used for submitting form data public List SelectedAnswerIds { get; set; } = new List(); + + public List SelectedText { get; set; } = new List(); } } diff --git a/Web/Views/QuestionnaireResponse/DisplayQuestionnaire.cshtml b/Web/Views/QuestionnaireResponse/DisplayQuestionnaire.cshtml index 4496c0a..592f6fc 100644 --- a/Web/Views/QuestionnaireResponse/DisplayQuestionnaire.cshtml +++ b/Web/Views/QuestionnaireResponse/DisplayQuestionnaire.cshtml @@ -120,6 +120,9 @@ color: orange; } + .hidden-textarea { + display: none; + } @@ -171,12 +174,16 @@

@(i + 1). @question.Text

+ @switch (question.Type) { case QuestionType.Text: -
- -
+ @foreach (var answer in question.Answers) + { + + + + } break; case QuestionType.CheckBox: case QuestionType.Multiple_choice: @@ -185,49 +192,74 @@ case QuestionType.Demographic: case QuestionType.Ranking:
+ @foreach (var answer in question.Answers) {
- +
} - +
break; case QuestionType.TrueFalse:
- - -
-
- - + + @foreach (var answer in question.Answers) + { +
+ + + +
+ + + } + +
+ break; case QuestionType.Open_ended: - + + @foreach (var answer in question.Answers) + { + + + + } + break; case QuestionType.Image: break; case QuestionType.Slider: - - 50 - + + @foreach(var answer in question.Answers) + { + + + + 50 + + } + break; case QuestionType.Rating:
@foreach (var answer in question.Answers) { - + }
break; @@ -266,9 +298,90 @@ @{ - + } + + @* + event.preventDefault(); + *@ }