You need to sign in to do that
Don't have an account?
Salesforce####
issue in Action function and javascript
i am giving the values in opportunity and when i click on the button "create aopportunity " it should create an opportunity record in the database and it should appear in the pageblock table which i am displaying . but some how it is not happening can you please modify my code .
vf page :
<apex:page controller="JSexmpleOptyCont" id="page">
<apex:form id="form">
<script>
alert("test1 success");
function validateOpp()
{
alert("function inside success");
var optyName = document.getElementById('{!$Component.page.form.pgblck.pbsec.item1.optyname}').value;
alert("optyName success");
var optyStage = document.getElementById('{!$Component.page.form.pgblck.pbsec.item2.optyStage}').value;
alert("optyStage success");
var optyAccount = document.getElementById('{!$Component.page.form.pgblck.pbsec.item3.optyAccount}').value;
alert("optyAccount success");
var optyAmount= document.getElementById('{!$Component.page.form.pgblck.pbsec.item4.optyAmount}').value;
alert("optyAmount success");
alert ("optyAmount value "+optyAmount);
if(optyAmount == null || optyAmount == '')
{
alert("amount cannot be empty");
}
else
{
alert("no error");
Createopp();
}
}
</script>
<apex:pageMessages id="msgs"/>
<apex:sectionHeader title="Opportunity" subtitle="Opportunity List View"/>
<apex:pageBlock mode="edit" id="pgblck">
<apex:pageBlockButtons location="top">
<apex:commandButton value="Create Opportunity" onclick="validateOpp();" />
<apex:actionFunction name="Createopp" id="Createopp" action="{!SaveRec}" />
<!--- <apex:actionStatus startText=" (incrementing...)" id="counterStatus"/>-->
</apex:pageBlockButtons>
<apex:pageBlockSection title="Create New Opportunites" id="pbSec">
<apex:pageBlockSectionItem id="item1">
<apex:outputLabel value="Opportunity Name" for="Opportunity_Name"/>
<apex:inputField value="{!opty.name}" id="optyname"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="item2">
<apex:outputLabel value="Stage" for="Stage"/>
<apex:inputField value="{!opty.stagename}" id="optyStage"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="item3">
<apex:outputLabel value="Account" for="Account"/>
<apex:inputField value="{!opty.AccountId}" id="optyAccount"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="item4">
<apex:outputLabel value="Amount" for="Account"/>
<apex:inputField value="{!opty.Amount}" id="optyAmount"/>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
<apex:pageBlockSection title="List of existing opportunities" columns="1">
<apex:pageBlockTable value="{!optylist}" var="opp" id="pbtable" >
<apex:column value="{!opp.Name}" />
<apex:column value="{!opp.AccountId }" />
<apex:column value="{!opp.stagename}" />
<apex:column value="{!opp.Amount}" />
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
========
controller :
public with sharing class JSexmpleOptyCont
{
public list<opportunity> optylist {set;get;}
public opportunity opty{set;get;}
public JSexmpleOptyCont()
{
optylist = new list<opportunity>([select id ,AccountId ,Name,Amount , StageName from opportunity order by Name Asc]);
opty = new opportunity();
}
public PageReference SaveRec()
{
system.debug(opty+'here in controller');
system.debug('========test2======'+opty);
database.insert(opty,false );
optylist = new list<opportunity>([select id,Name,Type,Amount,StageName,AccountId from opportunity ]);
Apexpages.addmessage(new apexpages.message(ApexPages.Severity.confirm,'Opportunity created succesfully'));
// opty = null;
return null;
}
}
vf page :
<apex:page controller="JSexmpleOptyCont" id="page">
<apex:form id="form">
<script>
alert("test1 success");
function validateOpp()
{
alert("function inside success");
var optyName = document.getElementById('{!$Component.page.form.pgblck.pbsec.item1.optyname}').value;
alert("optyName success");
var optyStage = document.getElementById('{!$Component.page.form.pgblck.pbsec.item2.optyStage}').value;
alert("optyStage success");
var optyAccount = document.getElementById('{!$Component.page.form.pgblck.pbsec.item3.optyAccount}').value;
alert("optyAccount success");
var optyAmount= document.getElementById('{!$Component.page.form.pgblck.pbsec.item4.optyAmount}').value;
alert("optyAmount success");
alert ("optyAmount value "+optyAmount);
if(optyAmount == null || optyAmount == '')
{
alert("amount cannot be empty");
}
else
{
alert("no error");
Createopp();
}
}
</script>
<apex:pageMessages id="msgs"/>
<apex:sectionHeader title="Opportunity" subtitle="Opportunity List View"/>
<apex:pageBlock mode="edit" id="pgblck">
<apex:pageBlockButtons location="top">
<apex:commandButton value="Create Opportunity" onclick="validateOpp();" />
<apex:actionFunction name="Createopp" id="Createopp" action="{!SaveRec}" />
<!--- <apex:actionStatus startText=" (incrementing...)" id="counterStatus"/>-->
</apex:pageBlockButtons>
<apex:pageBlockSection title="Create New Opportunites" id="pbSec">
<apex:pageBlockSectionItem id="item1">
<apex:outputLabel value="Opportunity Name" for="Opportunity_Name"/>
<apex:inputField value="{!opty.name}" id="optyname"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="item2">
<apex:outputLabel value="Stage" for="Stage"/>
<apex:inputField value="{!opty.stagename}" id="optyStage"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="item3">
<apex:outputLabel value="Account" for="Account"/>
<apex:inputField value="{!opty.AccountId}" id="optyAccount"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem id="item4">
<apex:outputLabel value="Amount" for="Account"/>
<apex:inputField value="{!opty.Amount}" id="optyAmount"/>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
<apex:pageBlockSection title="List of existing opportunities" columns="1">
<apex:pageBlockTable value="{!optylist}" var="opp" id="pbtable" >
<apex:column value="{!opp.Name}" />
<apex:column value="{!opp.AccountId }" />
<apex:column value="{!opp.stagename}" />
<apex:column value="{!opp.Amount}" />
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
========
controller :
public with sharing class JSexmpleOptyCont
{
public list<opportunity> optylist {set;get;}
public opportunity opty{set;get;}
public JSexmpleOptyCont()
{
optylist = new list<opportunity>([select id ,AccountId ,Name,Amount , StageName from opportunity order by Name Asc]);
opty = new opportunity();
}
public PageReference SaveRec()
{
system.debug(opty+'here in controller');
system.debug('========test2======'+opty);
database.insert(opty,false );
optylist = new list<opportunity>([select id,Name,Type,Amount,StageName,AccountId from opportunity ]);
Apexpages.addmessage(new apexpages.message(ApexPages.Severity.confirm,'Opportunity created succesfully'));
// opty = null;
return null;
}
}
or rerender the pageblocktable "pbtable" (Currently that is not happening in code you are filling optylist but not rerendering the pageblock table)
<apex:actionFunction name="Createopp" id="Createopp" action="{!SaveRec}" rerender="pbtable,msgs"/>