How to execute javascript function after bean method is finished in JSF -
How to execute javascript function after bean method is finished in JSF -
i want phone call javascript function after related action fired , related bean method finished. see related in question - proccess onclick function after ajax phone call <f:ajax>, utilize onevent handler of f:ajax.
after commandbutton id plnhiddenbtn fired, "preparetempplan" method of bean called. during process of "preparetempplan", can see info taken db , contained variable - "specdates" successfully, when "data.status" "complete".
however, the object on "specdates" can't passed bean client-side first-click of commandbutton. after first click of commandbutton, refresh page. when click button sec time, can object bean. can check if object bean passed or not alert message - alert(dates) in "updatecalendar" method of .js file.
how can object after action of commandbutton fired , related bean method finished?
all feedbacks appreciated!
.xhtml file;
<input jsfc="h:commandbutton" id="plnhiddenbtn" class="hiddenbtn" action="#plancalendarfacade.preparetempplan}"> <f:ajax execute="mainform" onevent="updateaddeddayplns" render="plnname" /> </input> <h:inputhidden id="specdates" value="#{plancalendarfacade.specdates}"/> .js file;
function updateaddeddayplns(data){ var status = data.status; // can "begin", "complete" or "success". switch (status) { case "begin": // before ajax request sent. alert("begin"); break; case "complete": // after ajax response arrived. alert("complete"); break; case "success": // after update of html dom based on ajax response.. alert("success"); $('.addeddayplnlst li:first').addclass('ui-selected'); updatecalendar(); //<-this important-> dayplnind = 0; break; } } function updatecalendar(){ var dates = document.getelementbyid('mainform:specdates').value; dates = json.parse(dates); alert(dates); } bean file;
public class plancalendarfacade { ... private object specdates = new string("hello"); ... public void preparetempplan() { plan plan = null; // find plan based on specific plan-id (slctdplnid). (int = 0; < plans.size(); i++) if ( plans.get(i).getplan_id() == slctdplnid ) plan = plans.get(i); if (plan == null){ // "add user group" operation, tempplan = new plan(); newrecflag = false; }else{ // "update , delete user group" operations. tempplan = plan; newrecflag = true; getspecificdayplansfromdb(plan.getplan_id()); getalldatesfromdb(); } } edit :
i pruned codes read easily.
i waiting advice, stuch on problem!
yon need render specdates field, client-side variable gets updated call.
<input jsfc="h:commandbutton" id="plnhiddenbtn" class="hiddenbtn" action="#plancalendarfacade.preparetempplan}"> <f:ajax execute="mainform" onevent="updateaddeddayplns" render="specdates" /> //also render multiple fields, if needed... </input> <h:inputhidden id="specdates" value="#{plancalendarfacade.specdates}"/> javascript jsf
Comments
Post a Comment