类点击计数器保存编号

时间:2019-06-12 作者:Vivek

当用户单击类计数时,计数器应工作:

<div class="pop-btn" class="counter"><a href="https://www.example.com">Know More</a></div>
<div class="count"></div>
问题是我想保存号码,例如:

用户#1用类“counter”单击div 10次

用户#2打开站点,计数为10,他单击,现在计数器开始11,新用户依此类推。

我正在尝试这样做,以跟踪文件的下载次数。

知道我该怎么做吗?

以下是我的代码:

功能。php

function js_enqueue_scripts() {
wp_enqueue_script ("my-ajax-handle", get_stylesheet_directory_uri() . "/js/counter.js", array(\'jquery\')); 
wp_localize_script(\'my-ajax-handle\', \'the_ajax_script\', array(\'ajaxurl\' =>admin_url(\'admin-ajax.php\')));
} 
add_action("wp_enqueue_scripts", "js_enqueue_scripts");


function set_button_count(){

  $counterFile = \'counter.txt\' ;

// jQuery ajax request is sent here
if ( isset($_POST[\'increase\']) )
{
    if ( ( $counter = @file_get_contents($counterFile) ) === false ) die(\'Error : file counter does not exist\') ;
    file_put_contents($counterFile,++$counter) ;
    echo $counter ;
    return false ;
}

if ( ! $counter = @file_get_contents($counterFile) )
{
    if ( ! $myfile = fopen($counterFile,\'w\') )
        die(\'Unable to create counter file !!\') ;
    chmod($counterFile,0644);
    file_put_contents($counterFile,0) ;
}


}
add_action(\'wp_ajax_nopriv_set_button_count\', \'set_button_count\');
add_action(\'wp_ajax_set_button_count\', \'set_button_count\');
计数器。js公司

jQuery(document).on(\'click\',\'.counter\',function(){
jQuery(\'.count\').html(\'Loading...\');
var ajax = jQuery.ajax({
method : \'post\',
url : the_ajax_script.ajaxurl, // Link to this page
data : { \'action\':\'set_button_count\',\'increase\' : \'1\' }
});
ajax.done(function(data){
jQuery(\'.count\').html(data) ;
});
ajax.fail(function(data){
alert(\'ajax fail : url of ajax request is not reachable\');
});
});
控制台错误:错误400 Post/wp admin/admin ajax。php

1 个回复
SO网友:Vivek

将ajax调用作为一个函数,以避免控制台错误400 Post。它打开了通道,我能够获得传递的参数。

柜台js公司

 jQuery(document).on(\'click\',\'.counter\',function(e){
 testAjax(the_ajax_script.ajaxurl);
 });


function testAjax(link) {
    $.ajax({
    url: link,
    type: \'post\',
    data: {
    \'action\': \'set_button_count\', 
    \'increase\' : \'1\'
  },  
  success: function(data) {
     jQuery(\'.count\').html(data);
  }
  });
}
在函数中。php我将$counterFile变量值更改为文本文件的链接,并通过WordPress管理面板上传。我将链接指定为服务器目录路径,以避免出现错误[“无法打开流:HTTP包装器不支持可写连接”]。

功能。php

function js_enqueue_scripts() {
wp_enqueue_script ("my-ajax-handle", get_stylesheet_directory_uri() . "/js/counter.js", array(\'jquery\')); 
wp_localize_script(\'my-ajax-handle\', \'the_ajax_script\', array(\'ajaxurl\' =>admin_url(\'admin-ajax.php\')));
} 
add_action("wp_enqueue_scripts", "js_enqueue_scripts");


function set_button_count(){

  $counterFile = \'/home/example/public_html/wp-content/uploads/2019/06/counter.txt\';
  if ( isset($_POST[\'increase\']) )
{
    if ( ( $counter = @file_get_contents($counterFile) ) === false ) die(\'Error : file counter does not exist\') ;
    file_put_contents($counterFile,++$counter);
    echo file_get_contents($counterFile);
    wp_die();
}

if ( ! $counter = @file_get_contents($counterFile) )
{
    if ( ! $myfile = fopen($counterFile,\'w\') )
        die(\'Unable to create counter file !!\') ;
    chmod($counterFile,0644);
    file_put_contents($counterFile,0) ;
}
wp_die();

}
add_action(\'wp_ajax_nopriv_set_button_count\', \'set_button_count\');
add_action(\'wp_ajax_set_button_count\', \'set_button_count\');
希望它能帮助别人。

相关推荐

添加php以形成操作中断代码

我有一个表单,它是一个链接到产品的按钮,但由于某种原因,当我将php添加到表单操作时,它打破了代码块。我不确定我错过了什么。这是一个非常简单的积木,我已经检查了上面的所有内容,并重复检查了一遍,在我找到这件作品之前,一切都很好。这是正在打破的障碍<form action=\"<?php echo get_permalink( get_option( \'pctg_wc_meal_choice_page\') ); ?>\" method=\"post\">