0
url = 'test.php';
dynbid = barr[bkey];
dynbcell = bcellarr[bkey];
$.ajax({
    type: "POST",
    cache: false,
    url: url,
    data: {dynbid:dynbid,dynbcell:dynbcell,},
    success: function(html){
        //alert(html);
        //location.reload();
        mybstringt = html;
    }
})
alert(mybstringt);//only works if alerted
mybstring = (window.mybstringt).split(';');
dynbnpc = mybstring[0];
dynbhid = mybstring[1];
dynbhp = mybstring[2];
dynbhpmax = mybstring[3];
dynbvalue = mybstring[4];
dynbname = mybstring[5];
dynbtobuild = mybstring[6];
dynbtobuildat = mybstring[7];
dynbcell = mybstring[8];
dynbimg = mybstring[9];
dynbtype = mybstring[10];

The problem is, if I don't alert mybstrint, it won't be defined, and the code won't run from the very next line. I tried localStorage the variables just for the heck of it, but it only works if I reload the page once.

  • Move your variable assignment code in the success callback method – Satpal Aug 23 '14 at 07:28
  • because your `mybstringt` is getting updated asynchronously. – Mritunjay Aug 23 '14 at 07:29
  • What do you mean Mritunjay? – user3126787 Aug 23 '14 at 07:31
  • See also [Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference](https://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron) and https://learn.jquery.com/ajax/ – Felix Kling Aug 23 '14 at 07:36

1 Answers1

0

Try this, Move your code inside the ajax success function

  url = 'test.php';
    dynbid = barr[bkey];
    dynbcell = bcellarr[bkey];
    $.ajax({
        type: "POST",
        cache: false,
        url: url,
        data: {dynbid:dynbid,dynbcell:dynbcell,},
        success: function(html){
        //alert(html);
        //location.reload();
        mybstringt = html;
        //alert(mybstringt);//only works if alerted
        /**Moved your code here **/
        var mybstring = (window.mybstringt).split(';');
        var dynbnpc = mybstring[0];
        var dynbhid = mybstring[1];
        var dynbhp = mybstring[2];
        var dynbhpmax = mybstring[3];
        var dynbvalue = mybstring[4];
        var dynbname = mybstring[5];
        var dynbtobuild = mybstring[6];
        var dynbtobuildat = mybstring[7];
        var dynbcell = mybstring[8];
        var dynbimg = mybstring[9];
        var dynbtype = mybstring[10];
        }
    })
Krish R
  • 22,583
  • 7
  • 50
  • 59