在我的调查中,我需要向几个受访者显示几个不同的链接,每个受访者都被分配了20多个唯一链接。
本质上,我想将链接发送到调查问题中,以将其动态显示给不同的受访者。我一直在尝试通过创建返回给定ID的匹配链接的函数来将观察ID(“ obsid”)与作为嵌入数据存储在联系人列表中的链接进行匹配(我可以在其中填充ID)通过将查询字符串附加到发送给不同受访者的调查链接的URL上。我通过JS将其设置为新的嵌入式数据字段(“ matchlink”),并将其作为可点击的链接发送到调查问题中。
在JS中,我创建了一个表(“ ID_table”),该表从联系人列表中调用嵌入的数据,然后使用函数getLookupTableByID()
将此ID与链接值进行匹配。 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>
任何有关如何修复代码的想法将不胜感激!我也乐于接受其他方法来完成更大的任务。希望这很清楚。
提前谢谢!