Joe
Joe

Reputation: 1354

if statement not evaluating correctly

so i am making a $.ajax call and returning json data. in said data there is an element named status. I am testing this: if(data.status === "success"){ ..do something..}. I know that the json data from the $.ajax call is in fact "success" (i know from the developers tools in chrome that the php script is returning {status: success}) however nothing in the if statement is being evaluated. and if i add an else statement to the if statement, that code DOES get evaluated. here is my code:

$.ajax({
    type: "POST",
    url: "./php/checkuser.php",
    datatype: "json",
    success: function(data){
      console.log(1);
      if(data.status === "success"){
        console.log(2);
        $.get("./mainmenu.html", function(html){
          $("#content").html(html);
          console.log(3);
        });
        $.ajax({
          type:"POST",
          url:"./php/loaduserdata.php",
          dataType:"json",
          success:function(data){
            console.log(4);
            if(data.status === "success"){
              console.log(5);
              var lastlevel = data.lastlevel;
              if(lastlevel === 0){
                console.log(6);
                $("#continue-wrapper").removeClass("enabled").addClass("disabled");
                $('<img />').attr('src', "./images/menuitem_continue-disabled.png").attr('id', "continue").attr('alt', "Continue").load(function(){
                  $("#continue-wrapper").html($(this));
                });
              } else {
                console.log(7);
                $("#continue-wrapper").removeClass("disabled").addClass("enabled");
                $('<img />').attr('src', "./images/menuitem_continue-enabled.png").attr('id', "continue").attr('alt', "Continue").load(function(){
                  $("#continue-wrapper").html($(this));
                });
              }
            }
          }
        });
      } else {
        console.log(8);
      }
    }, 
    error: function(thrownError){
      console.log(thrownError);
    }
  });

in the console for output i get 1 and 8. I'm stumped can someone see something that i can't?

Upvotes: 0

Views: 254

Answers (1)

Musa
Musa

Reputation: 97672

In the first ajax request you have datatype it should be dataType, so data is just a string and data.status is undefined.

Upvotes: 4

Related Questions