当我使用ajax在我的主题函数.php中调用Gravity Form时,表单字段被禁用。 任何解决方案都会对我有所帮助。
add_action('wp_head', 'mytheme_fn');
add_action('wp_ajax_mythem_load_gravityform', 'mythem_load_gravityform_call');
function mytheme_fn(){
?>
<script>
jQuery(document).ready(function () {
var data = {
action: 'mythem_load_gravityform'
};
jQuery.post(
ajaxurl,
data
).success(function (data) {
jQuery('.gformholder').html(data);
});
});
</script> <?php }
function mythem_load_gravityform_call(){
gravity_form(1, false, false, false, null,false);
exit;
}
提前谢谢。
答案 0 :(得分:1)
来自Gravity Forms支持专家:
“问题是由GF执行表单呈现逻辑引起的。他们检查is_admin()是否返回true(当你在Wordpress上调用ajax时它会这样做),如果是这样,它们会像你在管理员中一样呈现它。”
我们在Gravity Forms 1.9中进行了一些更改,因此在加载表单和字段时不再执行is_admin检查,这意味着现在可以通过AJAX加载表单和字段,它们将正确呈现。
Gravity Forms 1.9刚刚发布:http://www.gravityhelp.com/gravity-forms-v1-9-released/
关于增强的ui,它由selected.js脚本提供支持,当您对基础select元素进行更改时,您需要触发所选接口的更新:http://harvesthq.github.io/chosen/options.html#triggerable-events
答案 1 :(得分:0)
问题是由GF实现表单呈现逻辑引起的。他们检查is_admin()是否返回true(当你在Wordpress上调用ajax时它会这样做),如果是这样,他们会像你在管理员那样呈现它。
我可以在这里想到两个解决方案:
1)虚拟端点 使用没有头部或脚部的模板文件创建一个虚拟页面,只是一个简单的gravity_form(...); 然后从你的js中调用这个url。
2)插件 创建一个插件,它注册自定义查询var(使用query_vars过滤器),然后通过显示gravity_form(...)输出来处理查询变量。