On Aug 20, 7:01 am, Leonard Martin <leonard.mar...@gmail.com> wrote:
> The trouble is that the $.post is run asynchronously so anything after
> the $.post will be executed before the callback function.
>
> If you want the returned data to be available outside the callback
> then it will have to be inside a function which is called from within
> your callback method.
>
> e.g.
>
> var data1;
>
> $.post('save_search.php', formData, function(data) {
>
> data1 = data;
> handle();
>
> } );
> function handle() {
> jsonData = eval('(' + data1 + ')');
>
> if (jsonData.return_status.search("successful") > -1)
> $('#msg_div').html("<font color=red>Search was saved</font>");
> else
> $('#msg_div').html("<font color=red>Search was not saved. Try
> saving again.</font>");
>
> }
>
Sadly, I talready ried this and hit what appears to be another
problem. "handle()" (or my equivalent function) came up as undefined
according to Firebug when I tried to call it inside the callback
function.
It may be because my Javascript code is within the <body> of the HTML
file (due to reasons out of my control) rather than the <head>. Maybe
I can't use functions this way inside <body>. Or maybe it's same old
asynchronous problem with Ajax.