How to populate dropdown values based on another dropdown value

SSA1
Giga Expert

Hi,

I have issue where there are two drop downs in Incident form.

Product Line - this is populating from choices we have added to sys_choice table

Based on the selected product line value related Products have to populate into the Products drop down.

I'm populating these products value from Choice mapping custom table.

In Incident.

Product Line-String 

Product column - String

See below screenshots.

find_real_file.png

find_real_file.png

 

I have written a Onchange Client script as below but can't populate 'Product' drop down.

Can anyone please give some guidance on this how to achieve this.

var prod_line = g_form.getValue('u_p_line');
var gr=new GlideRecord('u_choice_mapping');
gr.addQuery('u_product_line',prod_line);
gr.query();
while(gr.next())
{
     g_form.setValue('u_product',gr.u_product_choice_mapping);
		
}

 

1 ACCEPTED SOLUTION

Use the same code in OnChange script

Sample code:

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
g_form.clearOptions('u_integer_f');
//your code here
var ga = new GlideAjax('HelloWorld');
    ga.addParam('sysparm_name', 'helloWorld');
    ga.addParam('sysparm_user_name', newValue);
    ga.getXML(HelloWorldParse);

    function HelloWorldParse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        //  alert(answer);
        var x = answer.split(",");
        for (var i = 0; i < x.length; i++)
            g_form.addOption('u_integer_f', x[i], x[i]);

    }
}


 


Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP

View solution in original post

12 REPLIES 12

My custom table won't showing in the Choice table field 

I could see custom tables in my Choice table field.

Is your table in another scope?


Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP

Hi @Rohila Voona 

find_real_file.png

 

Is your custom tables has choices in the sys_choice.

As I have googled it I think if custom table has choices it will show in the suggestions.

In this case I don't want to add choices to sys_choice I want to get it from custom table.

Okay Got It,

Remove all the configuration for your Product field dictionary.(Remove Choice Table and field,Remove dependent values too)

You should use GlideAjax in your client script and populate options

Below is sample code, Modify accordingly and let us know if You're stuck.

Script Include:

var HelloWorld = Class.create();
HelloWorld.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    helloWorld: function() {
        var res = [];
        var a = this.getParameter('sysparm_user_name');
        var grIncident = new GlideRecord('incident');
        grIncident.addEncodedQuery("active=true");
        grIncident.query();
        while (grIncident.next()) {

            res.push(grIncident.caller_id.title.toString());
        }
        return res.join(",");
    },
    type: 'HelloWorld'
});

Client script:

function onLoad() {
    //Type appropriate comment here, and begin script below
  //  g_form.clearOptions('u_integer_f');
//    g_form.addOption('u_integer_f', "hey", "hey");

    var ga = new GlideAjax('HelloWorld');
    ga.addParam('sysparm_name', 'helloWorld');
    ga.addParam('sysparm_user_name', "Bob");
    ga.getXML(HelloWorldParse);

    function HelloWorldParse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        //  alert(answer);
        var x = answer.split(",");
        for (var i = 0; i < x.length; i++)
            g_form.addOption('u_integer_f', x[i], x[i]);

    }
}

If my response helped you in any way, mark it as helpful.


Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP

@Rohila Voona 

This is working fine,

I want it to onchange value of Product Line.Please give some guidance on that