I've been trying to get a selected value from a radio button (apex:selectradio, i'm styling it with the 5-stars like Uber) in a Visualforce Page and save it to a field called Quality_Content__c from a custom object called Feedback__c. For that, I created a controller called CaseFeedbackController. Basically, I want my Feedback__c.Quality_Content__c field to be updated with my rating value from the radiobutton.

What exactly is off here?

Thank you!


<apex:page StandardController="Feedback__c" extensions="CaseFeedbackController"
standardStylesheets="true" lightningStylesheets="true" docType="html-5.0" cache="true">
<apex:outputPanel styleClass="star-rating">
    <apex:form id="form">
    <apex:pageBlock id="block">

    <apex:outputPanel styleClass="star-rating">
    <apex:form id="form">
    <apex:pageBlock id="block">
    <div style="text-align: center">{!if(isnull(rating),'No value selected',rating&' stars')}
            <apex:selectRadio value="{!rating}" layout="lineDirection">
                <apex:actionSupport event="onclick" reRender="form" />
                <apex:selectOption itemValue="1"></apex:selectOption>
                <apex:selectOption itemValue="2"></apex:selectOption>
                <apex:selectOption itemValue="3"></apex:selectOption>
                <apex:selectOption itemValue="4"></apex:selectOption>
                <apex:selectOption itemValue="5"></apex:selectOption>
  <apex:form >
        <apex:pageBlock >
        <apex:inputField required="true" value="{!Feedback__c.Quality_Content__c}"/> // this is just to check the field's value after saving
        <apex:pageBlockButtons location="both">
            <apex:commandButton action="{!save}" oncomplete="customSave();" value="Save"/>
            <apex:commandButton action="{!cancel}" value="Cancel"/>


public class CaseFeedbackController {

    public Feedback__c feed;

    public CaseFeedbackController(ApexPages.StandardController controller) {
        Feedback__c feed = (Feedback__c)controller.getRecord();
        this.feed = [select id, Quality_Content__c from Feedback__c where Id = :feed.ID];

    String rating = '';

    public String getRating() {
        return rating;
    public void setRating(String rating) {
        this.rating = rating;

    public void customSave() {

        try {
            feed.Quality_Content__c = this.rating;
            update feed;
            // Feedback__c.Quality_Content__c = this.rating;
            // update(Feedback__c);

        catch(System.DMLException e) {


1 Answer 1


You disassociated the feed variable in your controller from the page's version of the record (from StandardController). You'll want to remove this line:

this.feed = [select id, Quality_Content__c from Feedback__c where Id = :feed.ID];

Further, you don't actually need to use your rating variable or getter/setter; just bind to the field directly:

<apex:selectRadio value="{!Feedback__c.Quality_Content__c}" layout="lineDirection">

You can reference this anywhere:

<div style="text-align: center">{!if(isblank(Feedback__c.Quality_Content__c),'No value selected',Feedback__c.Quality_Content__c&' stars')}
  • Thank you for that, I just did it and it helped. Now my radio is being updated when I change my inputfield and save <apex:inputField required="true" value="{!Feedback__c.Quality_Content__c}"/> , but I still can't do it the other way around (change the radio selection and update my field). I am sure I'm still missing something... Commented Jun 25, 2019 at 13:13
  • i found my mistake. I just added an apex:actionSupport event="onchange" action="{!Save}"> to the radios div and it worked. Thank you for yourl help. Commented Jun 25, 2019 at 13:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .