diff --git a/main/survey/survey_question.php b/main/survey/survey_question.php
index c7a52c3918..be6414e689 100644
--- a/main/survey/survey_question.php
+++ b/main/survey/survey_question.php
@@ -25,7 +25,7 @@ class survey_question
$questions = SurveyManager::get_questions($surveyId);
$newQuestionList = [];
- $allowTypes = ['yesno', 'multiplechoice'];
+ $allowTypes = ['yesno', 'multiplechoice', 'multipleresponse'];
foreach ($questions as $question) {
if (in_array($question['type'], $allowTypes)) {
$newQuestionList[$question['sort']] = $question;
@@ -600,12 +600,17 @@ class survey_question
*/
public static function getQuestionJs($question)
{
+ if (empty($question)) {
+ return '';
+ }
+
$list = self::getDependency($question);
+
if (empty($list)) {
return '';
}
- $js = '';
+ $type = $question['type'];
$questionId = $question['question_id'];
$newList = [];
foreach ($list as $child) {
@@ -614,7 +619,48 @@ class survey_question
$newList[$optionId] = $childQuestionId;
}
- $js .= '
+ if ('multipleresponse' === $type) {
+ $multiple = '';
+ foreach ($newList as $optionId => $child) {
+ $multiple .= '
+ $(\'input[name="question'.$questionId.'['.$optionId.']"]\').on("change", function() {
+
+ var isChecked= $(this).is(\':checked\');
+ var checkedValue = $(this).val();
+ if (isChecked) {
+ $.each(list, function(index, value) {
+ //$(".with_parent_" + value).hide();
+ $(".with_parent_" + value).find("input").prop("checked", false);
+ //$(".with_parent_only_hide_" + value).hide();
+ });
+
+ var questionId = $(this).val();
+ var questionToShow = list[questionId];
+ $(".with_parent_" + questionToShow).show();
+ } else {
+ var checkedValue = list[checkedValue];
+ //$.each(list, function(index, value) {
+ $(".with_parent_" + checkedValue).hide();
+ $(".with_parent_" + checkedValue).find("input").prop("checked", false);
+ $(".with_parent_only_hide_" + checkedValue).hide();
+ //});
+ }
+ });
+ ';
+ }
+
+ $js = '
+ ';
+
+ return $js;
+ }
+
+ $js = '