ajax - Wordpress + Ajax 页面加载 + 重力表单 + 重力表单分页符

标签 ajax wordpress gravity-forms-plugin gravity gravityforms

我现在有这个设置:

一个 WordPress 网站,我正在使用类似于 http://barbajs.org/ 的内容
所以每个页面内容都是通过ajax加载到<main></main>标签。

在其中一个页面(联系页面)中,我有一个重力表单并且正在使用分页符。表单被分成多个步骤,每个步骤都加载到页面内。如果我加载的第一页是该页面(联系页面),一切正常,但是一旦我转到另一个页面并返回,或者如果我从前一页转到联系页面,表单就不再起作用.

关于如何解决它的任何想法。
这是代码部分:

Wordpress:所见即所得的短代码

[gravityform id="2" title="false" description="false" ajax="true"]

在加载时,我有这个:jQuery('#gform_wrapper_2').show() (这是唯一有效的方法),所以我没有得到黑页。

如果我单击下一步(它不会加载下一步)并且我已经尝试过:
这是我在文档或 onclick = "..." 下的下一个按钮中找到的。
jQuery(document).trigger('gform_post_conditional_logic', [2, null, true])
jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} )
jQuery(document).trigger('gform_post_render', [2, 1]) 
jQuery("#gform_target_page_number_2").val("2");  
jQuery("#gform_2").trigger("submit",[true]); 

我需要像 gform.init() 这样的东西理想情况下 :D 或类似的东西可以让我再次绑定(bind)表单。

非常感谢!

最佳答案

在深入研究了重力形式插件之后,我能够解决这个问题。

所以这就是我所做的......希望它在 future 对某人有所帮助(不确定是否是最好的解决方案,但它有效):

因此,“主要”想法是 barba 或您正在使用的任何东西(在我的情况下为 biggie)正在为新页面进行 ajax 调用,您将拥有类似 ready/newPageReady 函数的东西,在这里您可以进行新的 ajax 调用得到你的表格。

JS:(鉴于 gform 使用 jquery,您可以使用它)

 ready(done) {

   ajax.get(APP.AJAX_URL + '?action=get_form', {

      success: (object) => {

      //console.log(object.data)

      jQuery('.main-content-wrapper').append(object.data)
      jQuery('body #gform_wrapper_2').show()

    }
  })
}


addEvents() {

  // this will check everytime a form is loaded 

   jQuery(document).bind('gform_page_loaded', this.gform)

}


gform(event, form_id, current_page) {

   //Here the form is loaded but not showed.. you can do something like this

    TweenMax.fromTo('.gform_wrapper', 1.2, {autoAlpha: 0}, {autoAlpha:1})
}

函数.php
 add_action( 'wp_ajax_nopriv_get_form', 'get_form' );
 add_action( 'wp_ajax_get_form', 'get_form' );

 function get_form() {

     gravity_form( id_of_your_form,false, false, false, false, true );

    die();
}

关于ajax - Wordpress + Ajax 页面加载 + 重力表单 + 重力表单分页符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46237749/

相关文章:

c# - 使用 Ajax 在 Validationsummary 中显示错误消息

javascript - 在以下情况下,当错误来自PHP作为对Ajax请求的响应时,如何显示警报?

mysql - WordPress 插件即使在禁用时也会连接到 WP 数据库吗?

google-analytics - Google Analytics 中的 GTM + Gravity Forms 目标跟踪

wordpress - 重力形式 : No display when conditional logic, 即使使用 wp_footer() 和在部分中下载的 jQuery

php - 无法使用网络服务插入数据库

jquery - 在 jQuery AJAX GET 调用中传递请求 header

php - 如何通过插件更新推送 WordPress 帖子内容?

javascript - jQuery - 通过 Id 获取动态 (*) 元素并放入数组

css - 重力形式对齐