Reputation: 463
I have two arrays. 1 is empty and other have 5 items. I want to count them and display it.
i send ajax request like this :
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);
}
});
}
My count_trash_delete.php looks like this
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';
}
}
When i get response both are 5. Which i cant understand.
Upvotes: 0
Views: 42
Reputation: 1074028
You're asking the page to do the same thing, so it does the same thing. This is the problem code:
if(isset($_GET['action'])) {
$action = 1;
}else{
$action = 2;
}
It doesn't matter what the value of $_GET['action']
is in that code, if it's there at all you'll set $action
to 1
and if it isn't there you'll set $action
to 2
. Since you're always passing action
, the page always does the same thing.
You probably want to set $action
to the value of $_GET['action']
:
if(isset($_GET['action'])) {
$action = (int)$_GET['action'];
}else{
$action = /*...some appropriate default number...*/;
}
Upvotes: 1