You need to sign in to do that
Don't have an account?
Allen Manamel
Picklist field not getting populated from lightning component
I am trying to display a state field in lightning component for a form and then calling the apex method to store the information, but it does not store the state value on the backend. I am not sure what is wrong with the code below.
Here is my lightning component code:
<aura:component implements="forceCommunity:availableForAllPageTypes" access="global" controller="StateController">
<aura:attribute name="ContactInfo" type="Contact"
default="{ 'sobjectType': 'Contact',
'addressLine1': '',
'addressLine2': '',
'city': '',
'zip': '',
'state': '',
'country': '',
'citizenshipType': ''
}"/>
<!---State-->
<div class="form-element__control">
<label class="form-element__label formlabel" for="state">State</label>
<div class="form-element">
<div class="form-element__control">
<lightning:select
aura:id="fieldId"
class="select"
name="state"
label="State"
variant="label-hidden"
required="true"
value="{!v.ContactInfo.Permanent_State_Province__c}"
messageWhenValueMissing="Please Select a State">
<option value="">Select a state</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AS">American Samoa</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="PR">Puerto Rico</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VI">Virgin Islands</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
<option value="AA">Armed Forces America</option>
</lightning:select>
</div>
</div>
</div>
<div>
<lightning:button name="saveContinue" onclick="{!c.clickUpdate}" >
Save and Continue
</lightning:button>
</div>
</aura:component>
**Controller Class:**
({
clickUpdate : function(component, event, helper) {
var allValid = component.find('fieldId').reduce(function (validSoFar, inputCmp) {
inputCmp.showHelpMessageIfInvalid();
return validSoFar && !inputCmp.get('v.validity').valueMissing;
}, true);
if(allValid){
var isError = component.get("v.isError");
if( isError ){
component.set("v.isError", false);
}
helper.saveData(component,event,helper);
}else{
component.set("v.isError", true);
}
}
})
**Helper Class:**
({
saveData : function(component,event,helper) {
var bttnClicked = event.getSource().get("v.name");
var action = component.get("c.saveRecord");
action.setParams({
contactData : component.get("v.ContactInfo")
});
.........
.........
.........
})
**Here is the apex class:**
public without sharing class StateController {
@AuraEnabled
public static void saveRecord(contact contactData){
try{
if(contactData!=null){
update contactData;
}
}catch(Exception ex){
system.debug('ex'+ex);
}
}
}
Here is my lightning component code:
<aura:component implements="forceCommunity:availableForAllPageTypes" access="global" controller="StateController">
<aura:attribute name="ContactInfo" type="Contact"
default="{ 'sobjectType': 'Contact',
'addressLine1': '',
'addressLine2': '',
'city': '',
'zip': '',
'state': '',
'country': '',
'citizenshipType': ''
}"/>
<!---State-->
<div class="form-element__control">
<label class="form-element__label formlabel" for="state">State</label>
<div class="form-element">
<div class="form-element__control">
<lightning:select
aura:id="fieldId"
class="select"
name="state"
label="State"
variant="label-hidden"
required="true"
value="{!v.ContactInfo.Permanent_State_Province__c}"
messageWhenValueMissing="Please Select a State">
<option value="">Select a state</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AS">American Samoa</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="PR">Puerto Rico</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VI">Virgin Islands</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
<option value="AA">Armed Forces America</option>
</lightning:select>
</div>
</div>
</div>
<div>
<lightning:button name="saveContinue" onclick="{!c.clickUpdate}" >
Save and Continue
</lightning:button>
</div>
</aura:component>
**Controller Class:**
({
clickUpdate : function(component, event, helper) {
var allValid = component.find('fieldId').reduce(function (validSoFar, inputCmp) {
inputCmp.showHelpMessageIfInvalid();
return validSoFar && !inputCmp.get('v.validity').valueMissing;
}, true);
if(allValid){
var isError = component.get("v.isError");
if( isError ){
component.set("v.isError", false);
}
helper.saveData(component,event,helper);
}else{
component.set("v.isError", true);
}
}
})
**Helper Class:**
({
saveData : function(component,event,helper) {
var bttnClicked = event.getSource().get("v.name");
var action = component.get("c.saveRecord");
action.setParams({
contactData : component.get("v.ContactInfo")
});
.........
.........
.........
})
**Here is the apex class:**
public without sharing class StateController {
@AuraEnabled
public static void saveRecord(contact contactData){
try{
if(contactData!=null){
update contactData;
}
}catch(Exception ex){
system.debug('ex'+ex);
}
}
}
Have you tried checking if the value being sent to the apex class is it proper? also in the apex class I see that there is a system.debug statement are you getting a null value over here?
Looking forward to your response.
Thanks.