Sometimes, like in this case, where I needed to set the focus on load to a specific line in a table when inserting new rows, you need to execute javascript within your PL/SQL block. In this example in my Demo Application you will find an explanation of the code you need for that.
Hi Denes,
ReplyDeleteJust to be pedantic, the Javascript is not actually being executed by the PL/SQL, the PL/SQL is purely emitting the Javascript code (essentially text at this point) to the browser. The browser then interprets this code during the page rendering phase (rendering in the browser I mean).
It might seem like a subtle difference, but I just wanted to point out that the Javascript is not running at the same time the PL/SQL code is running in this case.
John.
Sure, but this is how this question will be asked and understood by the most. This is why I picked that title. Whoever reads the code will soon notice that there is no execution of the javascript through PL/SQL. PL/SQL is used to put the javascript code together and send it to the browser.
ReplyDeleteBy the way, it's not that hard to really "execute javascript through PL/SQL". About a year ago, I loaded rhino into a 10.2.0.4 server and played with it a little bit. It never had any use except to prove to myself that I'm still a nerd ;-).
ReplyDeleteHello Denes,
ReplyDeleteI understood what u have specified, but I want to do some other thing, I want to run a sql query while checking a condition in javascript like this
htp.p('if(v == true){');
update aggrement set checked='y' where agg_no = :P2_AGG_NO;
htp.p('}else{');
update aggrement set checked='n' where agg_no = :P2_AGG_NO;
htp.p('}');
but it is not working. This always insert 'n' in "checked" column.
Please Help me out on this.
you can send me a mail on this on
sheikh.tauceef@gmail.com
Thanks.
I don't think you need javascript for that since this can be done in the query itself. See this example from Patrick Wolf:
ReplyDeletehttp://www.inside-oracle-apex.com/checkboxes-in-tabular-forms-the-easy-way/
Denes Kubicek
actually i m doing this in a query only see this whole logic
ReplyDeleteDeclare
Cursor agg is
select Agg_no,client.Client_name clientn,End_date from AGGREMENT,client WHERE client.client_id = aggrement.client_id;
Begin
for agrmt in agg loop
:P2_END_DATE := agrmt.End_date;
:P2_AGG_NO := agrmt.Agg_no;
:P2_CLIENT_NAME := agrmt.clientn;
if to_date(agrmt.End_date,'dd-mon-rr') <= to_date(SYSDATE,'dd-mon-rr') THEN
htp.p('open script);
htp.p('pop('''
|| :P2_AGG_NO
|| ''','''
|| :P2_END_DATE
|| ''','''
|| :P2_CLIENT_NAME
|| ''');');
htp.p('if(v == true){');
update aggrement set checked='y' where agg_no = :P2_AGG_NO;
htp.p('}else{');
update aggrement set checked='n' where agg_no = :P2_AGG_NO;
htp.p('}close script');
end if;
end loop;
End;
This is my whole logic where I am calling a javascript function from select query from that function I m getting the value of 'v' which is a boolean variable and after checking this variable's value I want to update my table accordingly.
this is the Pop function:
var v;
function pop(ag_no,end_dt,clnt_nm)
{
v = confirm("Aggrement: " + ag_no + " with Client: " + clnt_nm + " is going to end on " + end_dt + " Date.");
}
For this either I need to run the update table qurery under javascript or I can reffer the javascript variable 'v' into my pl/sql function.
Sir please reply soon, Because I need it in my project on which I am working.
ReplyDeleteWaiting for your reply..
I am sorry but I still do not understand your requirement. I see your statement but I don't see what exactly you want to do with it.
ReplyDeleteDenes Kubicek
Actually I have a Confirm Box,
ReplyDeletewhich will get popped up when the aggrement end date is less than or equal to today's date, through that confirm box I am getting the value in variable "v" as true or false(after user pressed OK or CANCEL). After checking this value I want to update my "Aggrement" table.
So my problem is that the variable "v" is a Javascript variable and I want to update my table after checking this variable's value.
If u can tell me how can I access the variable "v" in PL/SQL function? If I can't do this than tell me can I run my update query in javascript after checking the value of "v".
Hope this explanation helps u understand my problem.
Thanks for helping me out. Please see if u can reply soon.
If you want you can check this in my workspace
ReplyDeleteLogin Information:
workspace:tauceef
username:denes
password:denes
Application: Sales Management-2098
Page:Aggrement(page no.2)
Sorry I forgot to mention
ReplyDeleteYou can login on
apex.oracle.com/pls/apex using above login information
I will have a look at it when I have time. I am currently bussy with my daily stuff.
ReplyDeleteDenes Kubicek
hi denes,
ReplyDeletehow it possible to show a "user choice confirmation message" during a pl/sql process..?
Hi
ReplyDeleteI have the same question that Nipun
I try to execute sql after a javascript confirm
htp.p('if (confirm("Do you want to delete your record?")) {' );
delete emp where emp_id = :P1_EMP_ID; );
commit;
htp.p('}');
But the delete will be execute at each time.
I find something like that
ReplyDeleteIf you cancel return to your page else delete the row
htp.p('if (!confirm("Do you want to delete your record?")) {' );
htp.p('redirect("f?p=&APP_ID.:1:&APP_SESSION.")');
htp.p('}');
htp.p('alert("delete in progress : ");' );
delete emp where emp_id = :P1_EMP_ID;
commit;
ReplyDeleteinteresting piece of information, I had come to know about your web-page from my friend pramod, jaipur,i have read atleast eight posts of yours by now, and let me tell you, your blog gives the best and the most interesting information. This is just the kind of information that i had been looking for, i'm already your rss reader now and i would regularly watch out for the new posts, once again hats off to you! Thanks a million once again, Regards, sql and plsql difference
thanks for sharing this article.its useful.Angular training in Chennai
ReplyDeleteAmazing Write-Up! Get Spring Boot Training Online at FolksIT.
ReplyDelete