Monday, March 26, 2012

Pass value from javascript to vb.net to database without postback...Possible?

Hi,
I have a complicated question that I'm hoping someone can help me out
with. I have a webpage that contains a plug-in. This plug-in can
communicate/pass data with the webpage that contains it via javascript.
What I need to be able to do is take that data passed via javascript
and, using vb.net as the code behind language, send it to a database
without posting it because when I post, the plugin is reloaded and
starts at the beginning. Specifcally, the plug-in is a type of
educational program, when the user completes a certain objective in the
program, I need to store that info in the database but not have the
program start back at the beginning.
What happens currently is upon completing the objective in the plugin,
a javascript function is called in the containing webpage. That
javascript function changes the data in a hidden field runat the
server. I artificially create a postback using the
document.forms.submit() function, then in the page_load function in the
codebehind page I check the value of the hidden field and store it to
the database. This works fine. The problem is that when the page
reloads, my plug-in is reloaded and instead of the user being at say
level 6, they are back at the initial level 1. Ideally, I would like to
send the information to the database without having to reload the page
and was wondering if this was possible.
Thanks in advance and I'll be happy to clarify any questions.
AndyYou would need to do something like use XMLHTTP to issue a call to a page to
do the work. However, I think that ties you to IE 5.5 and above. This may
or may not be a problem for you.
"Andy" <acs974@.hotmail.com> wrote in message
news:1129749048.607189.307420@.g44g2000cwa.googlegroups.com...
> Hi,
> I have a complicated question that I'm hoping someone can help me out
> with. I have a webpage that contains a plug-in. This plug-in can
> communicate/pass data with the webpage that contains it via javascript.
> What I need to be able to do is take that data passed via javascript
> and, using vb.net as the code behind language, send it to a database
> without posting it because when I post, the plugin is reloaded and
> starts at the beginning. Specifcally, the plug-in is a type of
> educational program, when the user completes a certain objective in the
> program, I need to store that info in the database but not have the
> program start back at the beginning.
> What happens currently is upon completing the objective in the plugin,
> a javascript function is called in the containing webpage. That
> javascript function changes the data in a hidden field runat the
> server. I artificially create a postback using the
> document.forms.submit() function, then in the page_load function in the
> codebehind page I check the value of the hidden field and store it to
> the database. This works fine. The problem is that when the page
> reloads, my plug-in is reloaded and instead of the user being at say
> level 6, they are back at the initial level 1. Ideally, I would like to
> send the information to the database without having to reload the page
> and was wondering if this was possible.
> Thanks in advance and I'll be happy to clarify any questions.
> Andy
>
the easiest approach is a hidden iframe/frame.
1) the src of the hidden frame should be an aspx page with hidden fields.
the clientscript would fill in the hidden fields in the frame, and do a
submit of the frame.
2) create an addtional form (nonserver) on the page with the target the
hidden frame, have the client script fill in the hidden fields in the form
and do a submit.
-- bruce (sqlwork.com)
"Andy" <acs974@.hotmail.com> wrote in message
news:1129749048.607189.307420@.g44g2000cwa.googlegroups.com...
> Hi,
> I have a complicated question that I'm hoping someone can help me out
> with. I have a webpage that contains a plug-in. This plug-in can
> communicate/pass data with the webpage that contains it via javascript.
> What I need to be able to do is take that data passed via javascript
> and, using vb.net as the code behind language, send it to a database
> without posting it because when I post, the plugin is reloaded and
> starts at the beginning. Specifcally, the plug-in is a type of
> educational program, when the user completes a certain objective in the
> program, I need to store that info in the database but not have the
> program start back at the beginning.
> What happens currently is upon completing the objective in the plugin,
> a javascript function is called in the containing webpage. That
> javascript function changes the data in a hidden field runat the
> server. I artificially create a postback using the
> document.forms.submit() function, then in the page_load function in the
> codebehind page I check the value of the hidden field and store it to
> the database. This works fine. The problem is that when the page
> reloads, my plug-in is reloaded and instead of the user being at say
> level 6, they are back at the initial level 1. Ideally, I would like to
> send the information to the database without having to reload the page
> and was wondering if this was possible.
> Thanks in advance and I'll be happy to clarify any questions.
> Andy
>
Once you're upgraded to ASP.NET 2.0 you can use the new client side
callback feature to do this kind of thing.
Here's more info:
http://www.aspnetpro.com/features/2...p200511so_f.asp
http://www.developer.com/net/asp/article.php/3506896
I hope this helps,
Steve C. Orr, MCSD, MVP
http://SteveOrr.net
"Andy" <acs974@.hotmail.com> wrote in message
news:1129749048.607189.307420@.g44g2000cwa.googlegroups.com...
> Hi,
> I have a complicated question that I'm hoping someone can help me out
> with. I have a webpage that contains a plug-in. This plug-in can
> communicate/pass data with the webpage that contains it via javascript.
> What I need to be able to do is take that data passed via javascript
> and, using vb.net as the code behind language, send it to a database
> without posting it because when I post, the plugin is reloaded and
> starts at the beginning. Specifcally, the plug-in is a type of
> educational program, when the user completes a certain objective in the
> program, I need to store that info in the database but not have the
> program start back at the beginning.
> What happens currently is upon completing the objective in the plugin,
> a javascript function is called in the containing webpage. That
> javascript function changes the data in a hidden field runat the
> server. I artificially create a postback using the
> document.forms.submit() function, then in the page_load function in the
> codebehind page I check the value of the hidden field and store it to
> the database. This works fine. The problem is that when the page
> reloads, my plug-in is reloaded and instead of the user being at say
> level 6, they are back at the initial level 1. Ideally, I would like to
> send the information to the database without having to reload the page
> and was wondering if this was possible.
> Thanks in advance and I'll be happy to clarify any questions.
> Andy
>
if you don't need anything back, it's trivial:
var sender = new Image();
sender.src = "whatever.aspx?stufff=1&junkID=27";
Done, and done.
Jason Kester
Expat Software Consulting Services
http://www.expatsoftware.com/
Get your own Travel Blog, with itinerary maps and photos!
http://www.blogabond.com/
Thanks everyone for their help. It seems that ajax is probably going to
be the way I go. I tried to avoid it since I'm pretty new to this web
programming and didn't understand if it was for me, but it seems that's
what I need long term. One quick question, I've been using asp.net 2.0
but because it is in its beta form, I have avoided exploiting much of
its newer features. How worried do I have to be about creating a
website in 2.0 beta then having it not work on me when the final
release comes out?

0 comments:

Post a Comment