Built something you're proud of? Tell the story. A quick G2 review of App Engine or Build Agent helps other developers see what's possible on ServiceNow. Share your experience.

Portal page, retrieving question text, words definitions in Server Side javascript not working

JeraldP
Tera Contributor

// Portal page, retrieving question text from a table (server side) and changing the innerHTML to display the definition // when a user hovers over the word in the question text. 

// Currently the query to a table for the questions to be returned.

var surveyQuestions = new GlideRecord( table question_instance);

surveyQuestions.addQuery("u_survey.u_year", data.currentYear);

surveyQuestions.addQuery("u_questiony.u_ecs_question_id", options.question_id);

surveyQuestions.Query();

surveyQuestions.next();

 

data.question = { };

data.question.id = surveyQuestions.getValue('sys_id");

data.question.question = surveyQuestions.getElement("u_question.u_question").getDisplayValue();

//once you have the question text call function replaceWordsWithDefinitions(data.question.id, data.question.question);

 

 

// retrieving words and their definitions from a table (server side) and changing the innerHTML to display the  //definition when a user hovers over the word in the question text. 

// Pass the question id and the quetion text to  the function..

 

function  replaceWordsWithDefinitions(id, textQuestion) {

var wordDefinitions = [];

var gr = new GlideRecord( table with Words and corresponding Definitions);

gr.Query();

while(gr.next())  {

        wordDefinitions.push( {

        word: gr.getValue('word');

        definition: gr.getValue('definition');

        });

    }

wordDefinitions.forEach(function(wordDefinition)  {

       var regex = new RegExp('\\b' +  wordDefinition.word  + '\\b', 'gi');

       textQuestion.innerHTML = textQuestion.innerHTML.replace(regex, '<span title=" '  +  wordDefinition.definition +  ' ">'  + wordDefinition.word + '</span>');

  });

}

0 REPLIES 0