插件管理端的AJAX-wp_LOCALIZE_SCRIPT-如何将值从JQuery传递到类中的PHP函数?

时间:2022-03-03 作者:LeeTee

我已经构建了一个插件,我需要在管理中使用ajax,并遵循以下文档:https://codex.wordpress.org/AJAX_in_Plugins

然而,这已经过时了,我找不到任何好的例子来让它工作。

我为插件使用了一个类,并将jquery放在一个单独的文件中。显然我需要使用wp_localize_script 传递变量。这就是我努力理解如何从selectObject传递变量的地方。将JQuery中的值转换为PHP函数。

有人能帮忙吗?

myplugin-admin.js

function getFeatureIDs(selectObject){
    var value = selectObject.value;  
    console.log(value);  //I want to pass this value but it doesnt work
    console.log(ajax_object.we_value); 

    var data = {
        \'action\': \'get_etim\',
        \'whatever\': ajax_object.we_value   
    };
   
    
    jQuery.post(ajax_object.ajax_url, data, function(response) {
        alert(\'Got this from the server: \' + response);

    });

}

class-myplugin-admin.php

class myplugin_Admin {
    private $myplugin;
    private $version;

    public function __construct($myplugin,$version ) {
        
        add_action( \'wp_ajax_get_etim\', array( $this, \'get_etim\' ) );

    }

    public function enqueue_scripts() {

        wp_enqueue_script( $this->myplugin, plugin_dir_url( __FILE__ ) . \'js/myplugin-admin.js\', array( \'jquery\' ), $this->version, false );

        wp_localize_script( $this->myplugin, \'ajax_object\', array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ), \'we_value\' => 1234 ) );
    }

    public function get_etim() {

        echo $_POST[\'whatever\'];

        wp_die();
    }
}

Results in console:

EC003025
1234
https://mytestsite.plesk.page/wp-admin/admin-ajax.php
警报为,

"E;从服务器获取:1234“;

这需要是select变量。

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

你把你的value 在通过ajax发送到php函数的数据中创建的JS变量,如:

var data = {
    \'action\': \'get_etim\',
    \'whatever\': ajax_object.we_value,
    \'select_value\': value   
};
然后在Ajax发送给您的php函数中,您可以使用select_value 和你以前一样whatever 在您的代码中,例如:

echo “Whatever is: “ . $_POST[‘whatever’] . “, and Select value is: “ . $_POST[‘select_value’];
不要忘记使用nonce、清理输入数据和转义输出。

相关推荐

WordPress搜索AJAX+同位素+无限滚动

Custom Ajax Search filter for WordPress Search我想给出一个完整的分解,以便您可以轻松地分析问题,并发现问题不在其他地方,而是JavaScript。如果您不是新手,请滚动到javaScript自定义搜索。JS部分。I found an article on how to add ajax search filters.searchform.php (标准搜索表单)标准搜索表单在筛选之前,我编辑了搜索表单,以便用户可以根据帖子类型(opone、optwo、opth