On Aug 20, 6:59 am, MorningZ <morni...@gmail.com> wrote:
> "Does anyone know what is wrong?  I've never seen an ordinary function
> behave this way. "
>
> That's because $.post (and the resultant $.ajax) isn't "ordinary",
> it's an asynchronous call and when you hit the line
>
>  jsonData = eval('(' + data + ')');
>
> the script isn't back from the post call yet....
>
> you need to learn about callbacks to better your code to take full
> advantage of async behavior
>
> another tip, if you are doing a post and looking to get back JSON,
> then use something like:
>
> var Options = {
>     type = "POST",
>     url = "save_search.php",
>     processData = true,
>     data = formData,
>     dataType = "json",
>     success = SaveSearch_Success,
>     error = SaveSearch_Error};
>
> $.ajax(Options);
>
> and outside all that, here are your functions "outside" the ajax call
>
> function SaveSearch_Success(data) {
>    // data = your result in JSON already};
>
> function SaveSearch_Error(x,y,z) {
>    // x.responseText will have server side error message
>
> };

How does this get around the asynchronous problem though?  If I try to
put and use  the JSON object outside of SaveSearch_Success, won't I
hit the same problem I already have?

Reply via email to