Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add a dynamic action that will redirect to another page by executing JavaScript Code?

I have buttons on my apex application that executes custom PL/SQL codes upon being clicked. They have names APPLY (Acknowledge) and CHANGE (Count Correct). I need to have it so that when APPLY is clicked, it redirects to the same page (with the PL/SQL code implemented) and when CHANGE is clicked, it redirects to another page (with PL/SQL code implemented).

I tried setting a conditional branch for After Processing by way of "When Button is Pressed" and/or "Condition Type: Request = Expression 1" with the value of Expression 1 equaling "APPLY" or "CHANGE". I can't produce the results I am looking for (frustratingly) this way. APEX says that the submitted page Request takes on the name button that is clicked (i.e APPLY when APPLY is clicked) but I can not get that to happen.

I am now seeking to add a True Action to my Dynamic Actions for APPLY and CHANGE (which are currently "Execute PL/SQL Code" and "Submit Page" for each) which executes a Javascript Code redirecting to the desired page in the application.

The code, i think, would utilize something like this

"apex.navigation.redirect('f?p=928:35:4081364075246::NO:::');"

page 35 is the page I'd like the CHANGE button to redirect to, in this case.

I'm not as versed in JavaScript as I'd like to be, so any help with my methodology on any of this would be appreciated.

like image 914
Kevin Avatar asked Jan 21 '15 18:01

Kevin


2 Answers

I finally found out how to do this. The Request of the button (specifically the dynamic action of the button) was not set to the button name because the 'Request/Button Name' of the 'Submit Page' true action was not set to the name of the button.

Make sure in the dynamic action to add this information under 'Settings'. The branch should be placed to 'Submit: before Processing' with the condition 'Request = Expression 1' with Expression 1 equaling the button name!

like image 136
Kevin Avatar answered Nov 14 '22 21:11

Kevin


In a recent project, I needed to do a page redirect once the user clicked the Save button on a model page. The button had a Dynamic action that included 3 separate actions:

  • Execute PL/SQL
  • Submit Page
  • Close Dialog

In between the Submit Page and the Close Dialog, I added an Execute Javascript action that clicks a hidden button that I added to the page.

 document.getElementById("BTN_ID").click();

The hidden button was set to redirect the user in Behavior -> Action -> Redirect to Page in Application, and the page #.

I hid the button with #BTN_ID{visibility:hidden;} placed in the CSS Inline section of the page.

This worked.

like image 38
WW Davos Avatar answered Nov 14 '22 23:11

WW Davos