В моем опросе мне нужно показать несколько разных ссылок нескольким респондентам, где каждому респонденту назначено более 20 уникальных ссылок.
По сути, я хочу направить ссылку в вопрос опроса, чтобы динамически отображать их разным респондентам. Я пытался сопоставить идентификаторы наблюдений («obsid») со ссылкой, хранящейся как внедренные данные в списке контактов («link»), создав функцию, которая возвращает соответствующую ссылку с указанным идентификатором (где я могу заполнить идентификатор). добавив строку запроса к URL-адресу ссылки на опрос, разосланной разным респондентам.) Я устанавливаю это как новое поле встроенных данных ('matchlink') через JS и передаю его в вопрос опроса в виде интерактивной ссылки.
В JS я создал таблицу («ID_table»), которая вызывает внедренные данные из списка контактов. Затем функция getLookupTableByID()
используется для сопоставления этого идентификатора со значением ссылки. Это адаптировано из https://thepoliticalmethodologist.com/2019/05/23/utilizing-javascript-in-qualtrics-for-survey-experimental-designs/, где они вручную вводят значения в таблицу поиска. Вместо этого я хочу извлечь эти значения из предварительно определенной метки встроенных данных из файла .csv.
Ниже мой JavaScript. Затем я устанавливаю новое поле встроенных данных «matchlink» в верхней части потока опроса и оставляю поле пустым.
var ID_table = {
ID: "${e://Field/obsid}",
link: "${e://Field/link}"
};
function getLookupTableByID(mytable, IDfield, ID, returnfield) {
matchindex = null;
try {
//this matches the panel data observation ID (obsID) with the row ID (ID) variable in the JS table above
var matchindex = mytable[IDfield].indexOf(ID);
//this returns the value of the response (defined in JS table) at the matching index
var matchreturn = mytable[returnfield][matchindex];
} catch (ex) {
console.log(ex);
}
return matchreturn;
}
//get observation ID (obsid) from panel data
var obsID = Qualtrics.SurveyEngine.getEmbeddedData("obsid");
//create new Embedded Data field with this function that corresponds to the matched file to be shown
var match = getLookupTableByID(ID_table, "ID", obsID, "link");
Qualtrics.SurveyEngine.setEmbeddedData('matchlink', match);
jQuery("#matchlink").html(ID_table.link);
Тем не менее, когда я указываю гиперссылку «matchlink» в контент опроса, она не отображается. Я думаю, что это может иметь какое-то отношение к HTML, но это все новое мне и мне трудно понять, как правильно отобразить ссылку. Кажется, что я хочу сделать, похоже на то, что было сделано здесь: https://www.qualtrics.com/community/discussion/3530/how-to-save-the-embedded-data-in-the-csv-file-how-to-show-the-content-of-the-embedded-data-in-a-q
В HTML у меня есть:
<div>Please click on <a href="${e://Field/matchlink}" target="_blank">this link</a> to view the article. </div><div> </div>
Я тоже пробовал это, но я уверен, что это неправильное форматирование:
<div>Please click on <span>id="matchlink">this link</span> to view the article. </div><div> </div>
Буду очень признателен за любые идеи по исправлению кода! Я также открыт для альтернативных подходов к решению более широкой задачи. Надеюсь, это понятно.
Заранее спасибо !!