这可能是一个范围问题,但我想涵盖所有基础。我成功地向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)
最合适的回答,由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);
}
});