Skip to main content

AJAX call example 1: return multiple values

AJAX call example 1: return multiple values

Client script code:

//--author: RDS Feb 2018
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        // return;
    }
    //--default the line manager and job title from requested for field
    g_form.setValue('job_title', '');
    g_form.setValue('line_manager', '');
    if (newValue!=''){
        var ga = new GlideAjax('my_ajax_funcs_sc');
        ga.addParam('sysparm_name', 'm_getuserinfo');
        ga.addParam('sysparm_usersysid', newValue);
            ga.getXML(function(serverResponse){
              var result = serverResponse.responseXML.getElementsByTagName("result");
              var message = result[0].getAttribute("message");
              //alert(message);
              //--get favorite elements
              var favorites = serverResponse.responseXML.getElementsByTagName("favorite");
              for(var i = 0; i < favorites.length; i++) {
                  var name = favorites[i].getAttribute("name");
                  var value = favorites[i].getAttribute("value");
              }

        });
    }
}

Script include script (client callable):

var my_ajax_funcs_sc = Class.create();
my_ajax_funcs_sc.prototype = Object.extendsObject(AbstractAjaxProcessor, {
   
    m_getuserinfo: function(){
        //--
        var userSYSID=this.getParameter('sysparm_usersysid');
        var sResult1='';
        var sResult2='';
        var result = this.newItem("result");
        result.setAttribute("message", "returning all favorites");
        //...complete the code...
        this._addFavorite('result1', sResult1);
        this._addFavorite('result2', sResult2);
        return result;
    },

    _addFavorite : function(name, value) {
        var favs = this.newItem("favorite");
        favs.setAttribute("name", name);
        favs.setAttribute("value", value);
    },

    type: 'my_ajax_funcs_sc'
});

Comments

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

ServiceNow - script include: build up the results as a JSON object (array) - example 2

function call var sCurrentGroupMembers = new <script_include> (). getGroupMembers ( group_sysid ); gs . print ( 'sCurrentGroupMembers:' + sCurrentGroupMembers ); var oGroupMembers = JSON . parse ( sCurrentGroupMembers ); gs . print ( JSON . stringify ( oGroupMembers . users )); oNewGroupMember = JSON . parse ( group_members ); var oGroupConfig = getGroupDeltas ( oGroupMembers . users , oNewGroupMember ); gs . print ( JSON . stringify ( oGroupConfig . remove )); gs . print ( JSON . stringify ( oGroupConfig . add )) output : *** Script: sCurrentGroupMembers: {"manager":"3b2649efdb0f8c10cc0652f3f39xxxxx", "email":"", "type":"33a2226edb99c340edfc7cbdae96xxxx", "description":"Created for xyz", "users":[{"user":"3b2649efdb0f8c10cc0652f3f396xxxx"},{"user":"856a8f71db3d73041b4ffc45ae96196a"},{"user":"3752771