- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2017 04:11 PM
I have three fields as shows in the screenshot below,
1 User selects Category = 'Software'
2 On clicking Type dropdown, we want to query a Table called 'Inventory' (where we have Category, Type & Subtype columns data) and pull matching Type values from there.
But here is another thing - while displaying Type values, we need to transform them by appending Type & Subtype together with a dot(.) and making them lowercase.
So the Type dropdown should show the values in this format -> type.subtype
Is this possible?
Thank you,
Yogesh
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-29-2017 10:17 PM
Hi Yogesh,
Please check below code with few modifications.
********** Script Include *****************
var DisplayTypeMenu = Class.create();
DisplayTypeMenu.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getListDetails : function() {
var list = [];
var order = this.getParameter('sysparm_category');
var gr = new GlideRecord('x_137749_test_menuvalue'); // Table name was wrong, it had x_137749_test_menuvalues (extra s) instead of x_137749_test_menuvalue
gr.addQuery('localmenuname', order); // Field name was wrong, filed backend name is localmenuname
gr.query();
while(gr.next())
{
var item_val = gr.getDisplayValue('menuvalue');
list.push(item_val);
}
return JSON.stringify(list);
},
type: 'DisplayTypeMenu'
});
*********** Client Script ******************
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//g_form.clearOptions('type'); //change the field name with dependent field name
var listDetails = new GlideAjax("DisplayTypeMenu");
listDetails.addParam("sysparm_name", "getListDetails");
listDetails.addParam("sysparm_category", newValue);
listDetails.getXML(ajaxResponse);
function ajaxResponse(serverResponse) {
var answer = serverResponse.responseXML.documentElement.getAttribute("answer");
var myObj = JSON.parse(answer);
alert(myObj);
// if(myObj.length > 0)
// {
// for(var i = 0; i<myObj.length; i++)
// {
// //g_form.addOption('type', myObj[i].toLowerCase(), myObj[i].toLowerCase()); //Replace the field name where you have to assign the value
// alert(myObj[i].toLowerCase());
// }
// }
}
}
Result:

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2017 04:27 PM
I think, that can be done with onSubmit() + Script Include (GlideAjax) with returning the values in this format type.subtype and use toLowerCase()function to convert them in lower case before setting the value into the field. we can give a try.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2017 04:42 PM
Thank you Shishir,
I will be working on it in a few hours. I will try it out and post the results.
Thank you,
Yogesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2017 06:02 PM
Are category and type values are referenced from two different tables?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2017 06:14 PM
Hi srnewbie,
category and type values are referenced from one table.
Thank you,
Yogesh