2016-12-28 181 views
0

我有两个数组。 1是空的,其他有5个项目。我想数它们并显示它。Ajax返回错误结果

我发送Ajax请求是这样的:

function countTrash() 
    { 
     $.ajax({ 
       type: "GET", 
       url: "count_trash_delete.php", 
       data: "action=1", 
       success: function(response){ 
          $("#badge3").html(response); 
         } 
     }); 
    } 




function countRemove() 
    { 
     $.ajax({ 
       type: "GET", 
       url: "count_trash_delete.php", 
       data: "action=2", 
       success: function(response){ 
          $("#badge2").html(response); 
         } 
     }); 
    } 

我count_trash_delete.php看起来像这样

if(isset($_GET['action'])) { 
    $action = 1; 
}else{ 
    $action = 2; 
} 

if($action === 1){ 

    $trash_arr = file_get_contents('trash_bots.json'); 
    $trash_arr = json_decode($trash_arr); 
    $number_of_trashed = count($trash_arr); 

    echo $number_of_trashed; 

}elseif($action === 2){ 

    $remove_arr = file_get_contents('remove_bots.json'); 
    $remove_arr = json_decode($remove_arr); 

    if(!empty($remove_arr)){   
    $number_of_removed = count($remove_arr);  
     echo $number_of_removed;   
    }else{ 
     echo 'Empty'; 
    } 
} 

,当我得到响应两者都5.我无法理解。

回答

1

你要求页面做同样的事情,所以它做同样的事情。这就是问题的代码:

if(isset($_GET['action'])) { 
    $action = 1; 
}else{ 
    $action = 2; 
} 

不要紧什么$_GET['action']是代码,如果它的存在都将设置$action1,如果它不存在,你我会将$action设置为2。既然你总是通过action,那么页面总是会做同样的事情。

你可能要设置$action$_GET['action']

if(isset($_GET['action'])) { 
    $action = (int)$_GET['action']; 
}else{ 
    $action = /*...some appropriate default number...*/; 
} 
+0

喔..我不能相信的,我没有看到。非常感谢 – MHH