Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 单击将1添加到计数器+;存储到服务器_Php_Javascript_Jquery_Button_Onclick - Fatal编程技术网

Php 单击将1添加到计数器+;存储到服务器

Php 单击将1添加到计数器+;存储到服务器,php,javascript,jquery,button,onclick,Php,Javascript,Jquery,Button,Onclick,我想在我的网站上使用一个计数器,所以当任何人点击某些按钮时,它会向计数器添加+1。我希望这样,当您刷新页面时,数字保持不变,当其他用户单击按钮时,它只会向计数器添加+1 这可能吗?我对Javascript和Jquery相当陌生,所以如果你能解释清楚,那就太好了 提前感谢。使用AJAX和PHP与服务器上的文件通信: (将此代码另存为index.php文件,就可以开始了!) 可能有一种更简单的方法,但我将向您展示如何使用AJAX(n*o页面刷新*)和PHP来实现这一点,这将允许您使用JS中的计数器值

我想在我的网站上使用一个计数器,所以当任何人点击某些按钮时,它会向计数器添加+1。我希望这样,当您刷新页面时,数字保持不变,当其他用户单击按钮时,它只会向计数器添加+1

这可能吗?我对Javascript和Jquery相当陌生,所以如果你能解释清楚,那就太好了

提前感谢。

使用AJAX和PHP与服务器上的文件通信: (将此代码另存为
index.php
文件,就可以开始了!)

可能有一种更简单的方法,但我将向您展示如何使用AJAX(n*o页面刷新*)和PHP来实现这一点,这将允许您使用JS中的计数器值做任何您想做的事情

所提供的PHP不是世界上最安全的,但可能足以满足您的需要。 如果服务器文件夹中没有文件(与index.php文件路径相同),它将自动创建一个名为
counter.txt
的文件

通过单击任何
按钮
元素(由您更改jQuery选择器),AJAX get将从文件中读取存储在文件中的当前值,然后发送递增的计数器值

<?php
$file = 'counter.txt';
// CREATE FILE
if(!file_exists($file)){
    $create = fopen($file, 'w') or die("Could not create the counter database.");
    file_put_contents( $file , '0' );
    fclose($create);
}
// WRITE FILE
if( isset($_POST['count']) ){
    $msg = htmlentities(strip_tags($_POST['count']), ENT_QUOTES);
    file_put_contents($file, $msg);
}
?>


<!DOCTYPE html>
<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>Flat-File db counter with PHP and AJAX by roXon</title>
</head>
<body>

<button>click me</button> 
<button>click me too!</button> 
refresh the page , the counter should be memorized from our auto-generated database file! ;)
<br><b></b>

<script>
    function addCount( newCounterValue ){
        $.ajax( {
            type: "POST",
            data: {count : newCounterValue},
            cache: false,
                    async: false,
            success: function() {
                $('b').append('<br>Succesfully sent: '+ newCounterValue);
            }
        });
    }
    $(function(){
        $('button').click(function(){       
            $.get('counter.txt', function(data) {
                // READ
                var counter = parseInt(data, 10) || 0;
                $('b').html('Retrieved counter from database = '+ data);
                // SEND
                addCount( ++counter ); // send preIncremented COUNTER
            });     
        });
    });
</script>

</body>
</html>
注意这只是客户端。您可以了解PHP如何动态创建文件并将该值发送到该文件中。
单击后,我建议您使用AJAX与该文件联系,并在使用PHP更新之前读取当前值。

发布您尝试过的内容。您可能不希望单独使用JS和/或jQuery来执行此操作。你是使用后端技术来连接数据库还是平面文件?我愿意做任何真正的数据库,任何事情。有人能给我一个代码吗?我很困惑,我该如何把它放到我的索引中?@user1952279如果你愿意,我可以告诉你如何在PHP中使用平面文件数据库。。。如果这对你的健康有好处的话needs@user1952279完成。此代码将自动在您的服务器上创建一个
counter.txt
,并存储初始值“0”:)谢谢您的帮助!还有一件事。。在一个单独的文件中,我想显示它被点击的时间,我该怎么做?@user1952279只需使用
$。像我一样获取
方法来读取值(只需根据您的需要修改它)。如果您不知道如何做,您可以雇人帮您做。
var counter = localStorage.getItem('counter') || 0;

$('button').click(function(){
     localStorage.setItem('counter', ++counter);
     alert(counter);
});