Javascript won't post variable


Javascript won't post variable

为什么这段代码在单元测试中工作得很好,但在页面中却不行?我有Firebug和FirePHP可以看到变量通过,如果我硬编码它,操作在单元测试中传递一个int很好,但我试过parseInt, Math。floor和许多其他古怪的方法,statementCount的值根本不会发布。ajax:

            //polling code
        var statementCount = 0; 
        (function poll(){
        setTimeout(function(){
        $.ajax({ url: "RROO_update.php", 
                type: "POST", 
                data: {'meetID': 2176, 'statementCount': statementCount}, 
                    success: function(data){
                        if(data.length > 0){
                            var statements = JSON.parse(data);
                            //reset the statement count
                            statementCount = statementCount + statements.length;
                            $(this).actplug_RROO('formatReturns', statements, userID);
                            poll();
                        }                                   
                     },         
                    error: function(){
                        poll();
                    }, 
                });
        }, 5000);
        })();

和php:

<?php
 include("../inc/variables.php");
 error_reporting (E_ALL ^ E_NOTICE);
 require_once('../FirePHPCore/FirePHP.class.php');
 require_once('../FirePHPCore/fb.php');
 $firephp = FirePHP::getInstance(true);
 ob_start();

 $MeetingID         = $_POST['meetID'];
 $StatementCount    = (int)$_POST['statementCount'];

 $firephp-> log($StatementCount, 'Statement count passed in' );
 $Finished = FALSE;
 while($Finished == FALSE){
     $MeetingStats = mysql_query("SELECT RROO_UPDATE.*, MEMBER.UserName, MEMBER.UserImage FROM RROO_UPDATE JOIN MEMBER ON RROO_UPDATE.MemberID = MEMBER.MemberID WHERE MeetingID = $MeetingID ORDER BY TimeStamp DESC", $DB_Connection);
     $MyNum = mysql_num_rows($MeetingStats);
     $firephp->log($MyNum, 'Row Query');

     if($MyNum > $StatementCount){
     $Returns = array();
        while($Return = mysql_fetch_array($MeetingStats)){      
            array_push($Returns, $Return);      
         } 
         $NewReturns = array();
         $NewStats = $MyNum - $StatementCount;
         $firephp->log($NewStats, 'heres the new stats count');
         for($i = 0; $i < $NewStats; $i++){
            array_push($NewReturns, $Returns[$i]);
         }
         $Here = count($NewReturns);
         $firephp->log($Here, 'The length of the new returns array');
         $Finished = TRUE;
         echo json_encode($NewReturns);
     }
     else{
        sleep(3);
     }
 }       

?>

就像我说的,它在单元测试中回来的很好,这在我能看到的所有方面都是一样的(我实际上把它复制粘贴到页面上),唯一的区别是回发在页面上的路由不同(到插件),但我已经弄乱了回调,无济于事。是否有一些原因,statementCount不会重置和Post在这段代码?

我不认为statementCount是在回调中定义的,只在执行ajax调用的函数中定义。