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
Sanjay Vinayak TSanjay Vinayak T 

How to access variables/fields from one Visualforce page into another Visualforce page?

Hi,

I have a requirement to enter input fields on one Visualforce page and show the output of the same field on another visual force page.

below are my Visualforce page code and apex code.

Visualforce page 1:
<apex:page standardController="Vendors_Detail__c" extensions="Vendorhandler" id="page" >
        <!-- Javascript -->
    <script type="text/javascript">
    
    function nameValidation(id)
    {
         if(id == 'page:form:pb:pdf'){
        this.clickMe();
        }
         if(id == 'page:form:pb:save'){
        this.amtValidation();
        }
        
        var n = document.getElementById('{!$Component.page.form.pb.pbs.name}');
        var a = document.getElementById('{!$Component.page.form.pb.pbs.amtevent}');
         var c = document.getElementById('{!$Component.page.form.pb.pbs.city}');
        var b = document.getElementById('{!$Component.page.form.pb.pbs.country}');
        
        if(n.value == "")
        {
            alert("Name is mandatory");
            return false;
        }
        else if (a.value == ""){
            amtValidation();
            return false;
            }
            else if (b.value == "" || c.value == ""){
            clickMe();
            return false;
            }
                 
        }
    
  function amtValidation()
    {
        var a = document.getElementById('{!$Component.page.form.pb.pbs.amtevent}');
        var savebtn = document.querySelector("[id$='save']");
        
        if(a.value == "" )
        {
            alert("Enter Amount to show Send Email Button");
            savebtn.style.visibility = 'hidden';
            return false;
        }
        else
        {
            save();   
        }
        }
    
function clickMe()
     {
        var a = document.getElementById('{!$Component.page.form.pb.pbs.city}');
        var b = document.getElementById('{!$Component.page.form.pb.pbs.country}');
        var pdfbtn = document.querySelector("[id$='pdf']");
        
        if(a.value == "" )
        {
            alert("Enter state to show Generate Pdf Button");
            pdfbtn.style.visibility = 'hidden';
            return false;
          
        }
        else if(b.value == "")
        {
            alert("Enter Country to show Generate Pdf Button");
            pdfbtn.style.visibility = 'hidden';
            return false;
       
        }
        else
        {
            clickme();
        }
    }
   
    </script>
<!-- Javascript -->
    
    <apex:form id="form">
     <apex:pageBlock id="pb" >
        <apex:actionFunction action="{!save}" name="save" reRender="form"/>
        <apex:actionFunction action="{!clickme}" name="clickme" reRender="form"/>
        <apex:actionFunction name="toggleButton" reRender="op"/>
         <apex:param name = "paramName" value = "Value To be pass"/>
      <apex:pageBlockSection id="pbs" title="Vendor Registration Form" columns="2">
          <apex:inputText id="name" value="{!vendor.Vendor_Company_Name__c}" label="Vendor Company Name" required="true"/>
          <apex:inputText id="cperson" value="{!vendor.Vendor_Contact_Person__c}" label="Vendor Contact Person"/>
          <apex:inputText id="amtevent" value="{!vendor.Amount_Per_Event__c}" label="Amount Per Event" onchange="toggleButton()"/>
          <apex:inputText id="city" value="{!vendor.City__c}" label="City" onchange="toggleButton()"/>
          <apex:inputText id="country" value="{!vendor.Country__c}" label="Country" onchange="toggleButton()"/>
      </apex:pageBlockSection>
        
        <apex:outputPanel id="op">
        <apex:commandButton id="save" action="{!save}" value="Send Email" onclick="return nameValidation(this.id);"/>
        <apex:commandButton id="reset" action="{!reset}" value="Reset"  ></apex:commandButton>
        <apex:commandButton id="pdf" action="{!clickme}" value="Generate PDF" onclick="return nameValidation(this.id);"/>
        </apex:outputPanel>
        
     </apex:pageBlock>
    </apex:form>
   
</apex:page>
Apex Code:
public with sharing class Vendorhandler {
    public Vendors_Detail__c vendor {get; set;}
    
    public Vendorhandler(ApexPages.StandardController std) {
        vendor = (Vendors_Detail__c) std.getRecord();
    }   

    public PageReference save(){
        
        insert vendor;
        
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        String[] toAddresses = new String[] {'sasanjayt@gmail.com'};
        mail.setToAddresses(toAddresses);
        String emailSub = 'Vendor Registration Details';
                mail.setSubject(emailSub);
        String content = 'Vendor Company name = ' + vendor.Vendor_Company_Name__c + ',<br/><br/>'+ 
                              ' Vendor Contact person = ' + vendor.Vendor_Contact_Person__c + ',<br/><br/>' + 
                              'Amount per Event = ' + vendor.Amount_Per_Event__c + ',<br/><br/>' + 
                              'City = '+ vendor.City__c + ',<br/><br/>'+
                              'Country = '+ vendor.Country__c + '.<br/><br/>'+
                              '<br/><br/>Thank you <br/><br/>';
        mail.setHtmlBody(content);
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
       
        return null;
        
    }
    public PageReference reset() {
        PageReference newpage = new PageReference(System.currentPageReference().getURL());
        newpage.getParameters().clear();
        newpage.setRedirect(true);
        return newpage;
    }
    
     public PageReference clickme(){
         insert vendor;
         PageReference newpage = Page.Vendor_Regidtration_form_pdf;
         newpage.setRedirect(true);
        //Vendors_Detail__c v = new Vendors_Detail__c();
        // v.Vendor_Company_Name__c = vendor.Vendor_Company_Name__c;
         //v.Vendor_Contact_Person__c = vendor.Vendor_Contact_Person__c;
         //v.Amount_Per_Event__c = vendor.Amount_Per_Event__c;
         //v.City__c = vendor.City__c;
         //v.Country__c = vendor.Country__c;
         return newpage;
         
         
    }
    
}

VisualFrce page 2:
<apex:page standardController="Vendors_Detail__c" extensions="Vendorhandler" renderAs="PDF">
    <apex:form>
        <apex:pageBlock title="Vendor Registration Form" >
            <apex:pageBlockSection>
                <apex:outputField value="{!vendor.Vendor_Company_Name__c}" label="Vendor Company Name"/>
            </apex:pageBlockSection>
 
        </apex:pageBlock>
    </apex:form>
</apex:page>

Kindly help me in accessing the values of input fields of page 1 to output field of page 2.

Thanks & Regards,
Sanjay Vinayak T

 
Sumit Mishra 47Sumit Mishra 47

you can set parameters on your PageReference object in class Vendorhandler

PageReference newpage = Page.Vendor_Regidtration_form_pdf;

newpage .getParameters().put('vcname', vendor.Vendor_Company_Name__c); 

 

then on your page2

<apex:outputField value="{!$CurrentPage.parameters.vcname}" label="Vendor Company Name"/>

 

please mark this answer if it solves your issue, good luck.