function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Manoj KumarManoj Kumar 

Dynamically get Picklist's value

I have 3 picklists as
1st picklist to show all objects (standard or custom)
2nd picklist to show only picklist fields related to selected object from 1st picklist
3rd picklist to show all values of that picklist field that I'hv selected from 2nd picklist

now the actual problem is my first 2 picklists are working and providing the desired result, but 3rd picklist is not showing the values based on the 2nd picklist

Many Thanks in Advance . . .
 
YiqinYiqin
Pleaes post a snapshot of your code for troubleshooting
Manoj KumarManoj Kumar
VisualForce Page:
<apex:page controller="ExtractSobject">    
<apex:form >
  <apex:pageBlock title="Objects">
    <apex:pageBlockSection columns="3">
    
        <apex:pageBlockSectionItem >
            <apex:outputlabel value="Select Object"/>
            <apex:selectList value="{!Selectedobject }" size="1" multiselect="false">
                <apex:selectoptions value="{!Selectedobjnames}"/>    
                <apex:actionSupport event="onchange" rerender="a"/>
            </apex:selectList>
        </apex:pageBlockSectionItem>

        <apex:pageBlockSectionItem >
            <apex:outputPanel id="a">
                <apex:outputLabel value="Object Fields " ></apex:outputLabel>
                <apex:selectList value="{!Sf}" size="1"> 
                    <apex:selectOptions value="{!SelectedobjFields}" />
                    <apex:actionSupport event="onchange" reRender="countries"/>
                </apex:selectList>
            </apex:outputPanel>
        </apex:pageBlockSectionItem>

        <apex:pageBlockSectionItem >
            <apex:outputLabel value="Values "/>
            <apex:selectList id="countries" value="{!fieldValues}" size="1" required="true">
                <apex:selectOptions value="{!fieldData}"/>
            </apex:selectList>
        </apex:pageBlockSectionItem>
  
    </apex:pageBlockSection>   
  </apex:pageblock>
</apex:form>
</apex:page>

APEX Controller:
public with sharing class ExtractSobject
{
    public String fieldValues { get; set; }
    public String selectedConId { get; set; }
    public String Sf{get;set;}
    public String Selectedobject { get; set; }
    public String selectedUserId{get;set;}
    
    public ExtractSobject(){
    
    }
    
    // To get Object Names
    public List<SelectOption> getSelectedobjnames()
    {
        List<Schema.SObjectType> obj = Schema.getGlobalDescribe().Values();
        List<SelectOption> options = new List<SelectOption>();
        
        options.add(new SelectOption('--Select Object--','--Select Object--'));
        
        for(Schema.SObjectType st : obj)
        {
            if(Selectedobject == null || Selectedobject=='' )
            {       
                Selectedobject = st.getDescribe().getName();
            }
            options.add(new SelectOption(st.getDescribe().getName(),st.getDescribe().getName()));
        }
        options.sort();
        return options;
    }
    
    // To get Picklist Fields Name
    public List<SelectOption> getSelectedobjFields()
    {
        SObjectType objTyp = Schema.getGlobalDescribe().get(Selectedobject);
        DescribeSObjectResult objDef = objTyp.getDescribe();
        Map<String, SObjectField> fields = objDef.fields.getMap();
    
        Set<String> fieldSet = fields.keySet();
        List<SelectOption> options = new List<SelectOption>();
        options.add(new SelectOption('--Select Object--','--Select Object--'));
        for(String s:fieldSet)
        {  
            SObjectField Sobjfields = fields.get(s);
            DescribeFieldResult selectedField = Sobjfields.getDescribe(); 
            if(String.valueOf(selectedField.getType())=='PICKLIST')
            {                
                options.add(new SelectOption(selectedField.getName(),selectedField.getName()));
            }
        }
        return options;
    }
    
    // To get Picklist Field's Values
    public List<SelectOption> getFieldData() 
    {
                    //System.debug('safdsdfasf');
                    System.debug('1st    '+Selectedobject);
                    System.debug('2nd      '+Sf);    
                    //    Schema.DescribeFieldResult fieldResult = Account.Rating.getDescribe();

    
        List<SelectOption> options = new List<SelectOption>();
        
        if(Sf != null)
        {
            Schema.DescribeFieldResult fieldResult = Account.Rating.getDescribe();
            List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
            
            options.add(new SelectOption('--None--','--None--'));
            for( Schema.PicklistEntry f : ple)
            {
                options.add(new SelectOption(f.getLabel(), f.getValue()));
            }
        }
        else
        {
            options.add(new SelectOption('--None--','--None--'));
        }
        return options;
    }
}