AJAX button run function

时间:2019-06-05 作者:Jaron

我想在点击按钮后运行函数。所有的都在一节课上。

JQUERY

jQuery(\'#text2\').click(function() {

    var data = {
        \'action\': \'myfunction\',
        \'whatever\': $button.data(\'text2\'), 
    };   

    // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
    jQuery.post(ajaxurl, data, function(response) {
        alert(\'Got this from the server: \' + response);
    });
});

PHP

      public function myfunction() {

       $write = intval( $_POST[\'whatever\'] );

       $write++;

       echo $write;
       wp_die();

      } 

HTML

<button id="text2" value="1500"> test </button>

1 个回复
最合适的回答,由SO网友:Steve 整理而成

为了使这项工作按预期进行,您需要在构造函数中添加以下行(取决于您的需求)

add_action( \'wp_ajax_myfunction\', array($this, \'myfunction\') );
add_action( \'wp_ajax_nopriv_myfunction\', array($this, \'myfunction\') );
请注意wp_ajax_nopriv_myfunction 为未登录的用户执行。另一个仅针对登录用户执行。

你还需要在JS中检查一下,ajaxurl 返回您的ajax URL。

否则,您需要公开该URL以便在JS中使用。您可以按照此处的法典进行操作:https://codex.wordpress.org/Function_Reference/wp_localize_script

你需要打电话wp_die(); 在PHP函数的末尾。

相关推荐

在两个不同的页面上加载两个不同的AJAX请求

我让ebeen尝试在不同的页面上调用两个单独的AJAX请求,每个请求都包含各自的部分。现在,它只在两个页面上拉入一个AJAX请求,即使使用特定的IF页面语句,从技术上来说,这些语句应该会阻止它们相互之间的连接。AJAX可以在调用它的两个页面上工作,但是尽管我付出了努力,两个页面都共享相同的AJAX调用,而不是各自单独的调用。我怎样才能登上头版。php调用它的特定AJAX调用和类别。php来调用它自己的?现在我有了我觉得应该这样做的代码cat_loadmore_posts 在两页上加载。我试图确保没有共享的