按下按钮时计算点击次数+将它们保存在.txt文件中

时间:2015-09-16 13:28:09

标签: php jquery

我想制作一个代码,当有人按下按钮时:"点击我"它将被视为一次点击,它将保存在.txt

<?php

if (file_exists('count_file.txt')) 
{
    $fil = fopen('count_file.txt', r);
    $dat = fread($fil, filesize('count_file.txt')); 
    echo $dat+1;
    fclose($fil);
    $fil = fopen('count_file.txt', w);
    fwrite($fil, $dat+1);
}

else
{
    $fil = fopen('count_file.txt', w);
    fwrite($fil, 1);
    echo '1';
    fclose($fil);
}
?>

我使用了那个脚本,但我希望它只适用于nclick =&#34; javascript:countClicks();所以当你刷新页面或其他东西时不是这样

我怎样才能使这个工作?

1 个答案:

答案 0 :(得分:0)

这很简单。
假设你有一个这样的按钮:

<button id="mybutton">Click Me</button>

然后进入该页面:

<script>
document.getElementById('mybutton').addEventListener('click', function(){
    document.getElementById('myFrm').submit();
});
</script>
<form id="myFrm" method="post" action="file.php"><input type="hidden" name="doit" value="true" /></form>

或者如果您想在不更改页面的情况下发送:

<script>
document.getElementById('mybutton').addEventListener('click', function(){
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("POST","file.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("doit=true");
});
</script>
file.php中的

<?php
    if(!empty($_POST) && array_key_exists('doit', $_POST)) {
        if($_POST['doit'] == "true") {
            if (file_exists('count_file.txt')) 
            {
                $fil = fopen('count_file.txt', r);
                $dat = fread($fil, filesize('count_file.txt')); 
                echo $dat+1;
                fclose($fil);
                $fil = fopen('count_file.txt', w);
                fwrite($fil, $dat+1);
            }

            else
            {
                $fil = fopen('count_file.txt', w);
                fwrite($fil, 1);
                echo '1';
                fclose($fil);
            }
        }
    }
?>