在WP插件的多个函数中使用通过AJAX发送的数据

时间:2016-08-09 作者:Tony M

这可能是一个范围问题,但我想涵盖所有基础。我成功地向Ajax处理程序函数发送了一个值distance。以下是JS:

    $.ajax({
    type: \'POST\',
    url: url,
    data: {
        \'action\':\'example_ajax_request\',
        \'distance\' : distance
    },
    success:function(response) {
        // This outputs the result of the ajax request
        console.log(response);
    },
    error: function(errorThrown){
        console.log(errorThrown);
    }
});  
我可以访问后端的距离变量:

add_action( \'wp_ajax_example_ajax_request\', \'example_ajax_request\' );

add_action( \'wp_ajax_nopriv_example_ajax_request\', \'example_ajax_request\' );

// Dynamic field population

function example_ajax_request() {

    // The $_REQUEST contains all the data sent via ajax 
    if ( isset($_POST) ) {

        $distance = $_POST[\'distance\'];
        // echo $distance;

    }

   die();
}
$distance 包含值,我可以成功地回显它。但我需要在另一个函数中使用这个值,这个函数可以连接到重力形式。我需要动态设置重力窗体值(使用gform_field_value_$parameter_name 挂钩)。问题是我无法找到访问$_POST[\'distance\'] Ajax函数之外的值和重力在$_POST[\'distance\'] 是可用的(我猜)。

有没有办法访问发送的Ajax$_POST WP中处理程序函数之外的对象?我是不是看错了?关于如何使用该值动态填充重力表单字段,有什么建议吗?

提前谢谢。

更新时间:

如果可能的话,我试图在后端设置GF值,而不是使用Ajax响应(使用jQuery)

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

据我所知,您想用AJAX请求的结果(距离)更新GF字段。

如果这是正确的,那么在成功的AJAX请求中,您只需要更新GF字段的值。

假设您的response 实际值的格式是否正确。这是你需要做的。

$.ajax({
  type: \'POST\',
  url: url,
  data: {
    \'action\':\'example_ajax_request\',
    \'distance\' : distance
  },
  success:function(response) {
    // This outputs the result of the ajax request
    console.log(response);
    $(\'#your-GF-ID\').val( response ); // This is where you update your GF field 
  },
  error: function(errorThrown){
    console.log(errorThrown);
  }
});