在json中单独存储每个按钮的点击次数

时间:2015-03-29 13:36:14

标签: php jquery json

我正在使用jqueryphpjson来存储和更新单个下载按钮上的点击次数。它运行完美,但现在我需要能够存储和更新多个下载按钮的点击并单独显示它们。

你们能帮我一把吗? 到目前为止我所拥有的是:

  

jQuery的:

$('.download').click(function(event) {
  event.preventDefault();
  ga('send', 'event', 'Button', 'Clicks', 'Downloads');
    var redirectUrl = $(this).attr('href');
    $.ajax({
        url: "downloads.php",
        success: function(response) {
            if (response = 'success') {
                // The counter file has been updated in the background, but we should update the results on screen to tell the user
                var count = $('.small').html();
                $('.small').html(parseFloat(count) + 1);

                // Then redirect so that file can download
                $("#cover").fadeIn(600);
                $("body").addClass("hidescroll");
                window.location.href = "download/imagins_._ro_free_files_format_icons.rar";
            }
        }
    });
    return true;
});

$.ajax({
    url: "get-downloads.php",
    success: function(data) {
        var data = JSON.stringify(data, null, 4);
        var data = $.parseJSON(data);

        $('.small').html(data.count);
    }
});
  

downloads.php

<?php
    $file = "downloads.json";
    $json = json_decode(file_get_contents($file), true);
    $json['count'] = $json['count'] + 1;
    file_put_contents($file, json_encode($json));
    echo 'success';
?>
  

GET-downloads.php

<?php
    $file = "downloads.json";
    $json = json_decode(file_get_contents($file), true);
    header('Content-Type: application/json');
    echo json_encode($json);
?>
  

和downloads.json

{"count":174}

1 个答案:

答案 0 :(得分:2)

试试这个

例如3按钮

<input type='button' name='btn1' class='download'/>
<input type='button' name='btn2' class='download'/>
<input type='button' name='btn3' class='download'/>

将按钮名称发送到服务器,并在不同.smallbtn1.smallbtn2.smallbtn3

中显示计数
$('.download').click(function(event) {
  event.preventDefault();
  ga('send', 'event', 'Button', 'Clicks', 'Downloads');
    var redirectUrl = $(this).attr('href');
    //get name of button
    var name= $(this).prop('name');
    //==================
    $.ajax({
        url: "downloads.php",
        data:{buttonName:name},
        method: "POST",
        success: function(response) {
            if (response = 'success') {                
                //get count download
                $.ajax({
                    url: "downloadsCount.php",
                    data:{buttonName:name},
                    method: "POST",
                    success: function(response){
                           $('.small'+name).html(response);     
                           $("#cover").fadeIn(600);
                           $("body").addClass("hidescroll");
                           window.location.href = "download/imagins_._ro_free_files_format_icons.rar";                  
                    }                   
               });      
            //===================                    
            }
        }
    });
    return true;
});

在downloads.php中打开json文件

<?php
    $buttonName=$_POST["buttonName"];
    $file = "downloads.json";
    $json = json_decode(file_get_contents($file), true);
    $json['count'.$buttonName] = $json['count'.$buttonName] + 1;
    file_put_contents($file, json_encode($json));
    echo 'success';
?>

downloadsCount.php

<?php
    $buttonName=$_POST["buttonName"];
    $file = "downloads.json";
    $json = json_decode(file_get_contents($file), true);
    echo $json['count'.$buttonName] ; 
?>

downloads.json

{"countbtn1":0,"countbtn2":0,"countbtn3":0}

this is my test and working for me