Google Forms - ko'p tanlovli javob indeksini oling

Menda matnli javoblari bo'lgan bir nechta tanlovli savollarga ega Google formasi bor. Shakldagi barcha savollarni aylantira olaman va javobning matn qiymatlarini quyidagi yordamida olishim mumkin:

for(var i in headers) {
  message += e.namedValues[headers[i]].toString() + "\n\n"; 
}

Biroq, men ball berish uchun har bir tanlangan javobning indeksini olishni xohlayman.

Aniq bo'lish uchun - agar mening formamda quyidagi ko'p tanlovli savol bo'lsa:

Yuksiz qaldirg'ochning havo tezligi qanday?

Javoblar bilan:

  • 5
  • 3
  • Yevropami yoki Afrikami?

Agar topshiruvchi “Yevropalikmi yoki afrikalikmi?” deb javob bersa. Men bu javobning indeksini, ya'ni 2 raqamini olishni xohlayman.

Rahmat!


person dzisner    schedule 03.02.2014    source manba


Javoblar (2)



MultipleChoiceItem.getIndex() usuli hali ham ko'p tanlovli javobning tanlangan indeksini emas, balki ko'p tanlovli savol elementining indeksini oladi. Tanlangan tanlov indeksini olish uchun MultipleChoiceItem.getChoices() dan foydalaning, so'ngra tanlangan tanlovni choices[] massivning har bir qiymati bilan solishtirish uchun choices[] massivini aylantiring. Agar tanlov qiymati = tanlangan tanlov bo'lsa, tanlangan tanlov indeksi sifatida massiv indeksini oling:

// Add this function to 'on form submit' trigger.
function onFormSubmit(e) {
  var selectChoiceIndex = getSelectedChoiceIndex(e);
}

function getSelectedChoiceIndex(e) {
  var form = FormApp.getActiveForm();
  var mChoiceIndex = 1; // Assuming 1 is your mutiple-choice question index.
  var formResponse = e.response;
  var itemResponses = formResponse.getItemResponses();

  var selectedChoice = itemResponses[mChoiceIndex].getResponse();
  var choices = form.getItems(FormApp.ItemType.MULTIPLE_CHOICE)[mChoiceIndex].asMultipleChoiceItem().getChoices();

  for (i = 0; i < choices.length; i++) {
    if (selectedChoice == choices[i]) {
      return i;
    };
  }
}

E'tibor qilish kerak bo'lgan narsalar:

  1. Bu javobda keltirilgan misol kodning optimallashtirilgan yoki toʻliq sinovdan oʻtgan versiyasi emas, balki shunchaki tushunchadir.
  2. mChoiceIndex bu yerda bir xil ItemType< indeksi. /strong> shaklda. Bu dizayn vaqtida emas, balki ish vaqtida taqdim etilishi ketma-ketligiga amal qiladi, ayniqsa sizda shartli sahifa uzilishi/bo'limi mavjud bo'lganda.
person Antonio Ooi    schedule 29.10.2016
comment
Menda xuddi shunday foydalanish holati bor edi va Google meni bu erga olib keldi. Menimcha, bu yozilgandek ishlamaydi. selectedChoice satr, choices[i] esa Choice tipidagi ob'ekt, shuning uchun ular hech qachon mos kelmaydi. Shartni selectedChoice == choices[i].getValue() ga o'zgartirish men uchun ishladi. - person Matthew Leingang; 23.07.2020