2016-05-20 24 views
2

私は基本的なAjaxの機能Ajaxの文字列比較

setInterval(function() { 
     var action = ''; 
     var status = ''; 
     $('#php-data').load('../Data/Dashboard.Data.php'); 
     $.ajax({type: 'POST', url: 'Data/Dashboard.Image.php', data: { json: action }, dataType: 'json' }).done(function(data) { 
      console.log('Ajax Data: ' + data); 
      status = JSON.parse(data); 
      **if(status === 'false') {** 
       console.log("script is NOT running"); 
       drawPieChart(); 
      } else { 
       console.log("script is running"); 
      $('#php-image').load('../Data/Dashboard.Image.php'); //todo only load this is the ajax returned from Dashboard.image.php is true 
      } 
     });    
    }, 5000); 

は基本的に私のAJAXを返すだけの事は、私はfalseに状況を比較するときに、それは本当であるとdrawPieChart()する必要があり、「偽」である持っています。代わりに、私のajaxデータが毎回falseを返すとしても、常にjquery load()関数を実行します。

setInterval(function() { 
     var action = ''; 
     var status = ''; 
     $('#php-data').load('../Data/Dashboard.Data.php'); 
     $.ajax({type: 'POST', url: 'Data/Dashboard.Image.php', data: { json: action }, dataType: 'json' }).done(function(data) { 
      console.log('Ajax Data: ' + data); 
      status = data; 
      **if(status === 'false') {** 
       console.log("script is NOT running"); 
       drawPieChart(); 
      } else { 
       console.log("script is running"); 
      $('#php-image').load('../Data/Dashboard.Image.php'); //todo only load this is the ajax returned from Dashboard.image.php is true 
      } 
     });    
    }, 5000); 

と、この:

setInterval(function() { 
     var action = ''; 
     $('#php-data').load('../Data/Dashboard.Data.php'); 
     $.ajax({type: 'POST', url: 'Data/Dashboard.Image.php', data: { json: action }, dataType: 'json' }).done(function(data) { 
      console.log('Ajax Data: ' + data); 
      **if(data == 'false') {** 

       console.log("script is NOT running"); 
       drawPieChart(); 
      } else { 
       console.log("script is running"); 
      $('#php-image').load('../Data/Dashboard.Image.php'); //todo only load this is the ajax returned from Dashboard.image.php is true 
      } 
     });    
    }, 5000); 
+0

何*正確に*あなたは 'console.log'から見ていますか?あなたのPHPコードは何を出力していますか? –

+0

これは、setInterval()の何度も何度も返されています:Ajaxデータ:false スクリプトが実行されています – ChrisianBartram

+1

try 'if(data == false){' – BenG

答えて

1
if(status === 'false') 

これは、文字列を示唆 IVEにも、これを試してみました。これは代わりに使用します。

if(status == false) 

あなたはさらにそうのようにそれを簡素化することができます:

if(!status) 
+0

これは問題でしたありがとうございました!私のajaxが文字列を返した理由jqueryまたはjavascriptがその型をブール値に自動的に変換したのはなぜですか? – ChrisianBartram

+1

文字列を返す場合は、それは本当でしょう。それが何も返されない場合、または実際にはfalseの場合、falseを返します。 –