0

困惑しています...以下に示すファイル「api.php」があります。これは、jquery ajax 呼び出しで呼び出されます。コマンド ラインから実行すると、正しいように見える (つまり、空ではない) 応答が返されます。ajax 呼び出しで実行すると、空に戻ったように見えます。今...「if( $td < $lessthan )」と2つの中括弧をコメントアウトすると、すべて正しく機能します(つまり、ajaxの成功は正しいデータを取得します.

これが私の「api.php」関数です:

    $basedir = "calls/";
    $now = time();

    $lessthan  = 20 * 60;
    $ret = array();
    $dir = opendir( $basedir );
    while(($currentFile = readdir($dir)) !== false)
    {
            if ( preg_match( '/(.*).txt/', $currentFile, $match) )
            {
                    $tt = @file_get_contents($basedir.$currentFile);
                    $td = ($now - @strtotime( $tt ));
                    if( $td < $lessthan )
                    {
                            $ret[] = $match[1];
                    }
            }
    }
    closedir($dir);

  echo json_encode(implode(',', $ret));
?>

これが私のjquery ajax呼び出しです:

    $.ajax({                          
      url: 'api.php',                 
      data: "",                       
      dataType: "json",               
      type: "POST",                   
      success: function(data, textStatus, jqXHR)
      {                                     
            console.log(data + ':' + previous + '  ' + textStatus );
            if( data != null && data != previous && data != "" )
            {                                                               previous = data;                
                    $('#other').hide(); //Set output element html
                    $('#loaddiv').fadeOut('fast').load('reload.php?q='+data).fadeIn("fast"); //Set output element html
            }

            if( (data == null || data == "" ) && previous != null )                {                                       
                    //$('#loaddiv').fadeOut('fast').html('No Active Calls').fadeIn("fast"); //Set output element html
                    $('#loaddiv').fadeOut('fast'); //Set output element html
                    $('#other').show();             
                    $('#other').fadeOut('fast').load('default.php').fadeIn("fast");
                    previous = null;                
            }                               
      },                              
      error: function(m) { alert('error'); } 
    });                             

api.php の「if」ステートメントをコメントアウトすると、すべてが機能する理由についてのアイデアはありますか? または、さらに良いことに、if ステートメントをそのままにして、それが機能するようにするにはどうすればよいでしょうか。

4

0 に答える 0