【问题标题】:Gravity Forms Multipage Form, dynamically populate from existing form entry based on unique keyGravity Forms 多页表单,基于唯一键从现有表单条目动态填充
【发布时间】:2023-03-16 04:48:01
【问题描述】:

我正在为一所学校使用 Gravity Forms (WordPress) 制作一对表格。他们有一个应用程序的初始表格。每个提交都被分配一个唯一的五个字符的键来识别它。这被保存在一个隐藏的字段中。此表单包含姓名、电子邮件、电话、地址等信息。此表单已启动并运行,运行良好。

一旦学生被录取,我们现在需要另一种用于注册的表格。此表单将是一个多页表单,其中包含更多详细信息以及有关历史/父母等的各种问题。我的想法是第一个 包含一个请求分配给他们的应用程序的键的字段。提交第一页后,表单将根据密钥查询数据库,并从原始应用程序返回适用于第二个表单的任何信息。因此,无需手动重新输入姓名、电子邮件、电话等信息。

我开始走上动态人口的道路,遇到了一些麻烦。看起来事情在多页表单上的操作方式不同,并且取决于您是否使用 AJAX。有没有人有过为表单人口进行这种关键查找的经验?我可以在原版 PHP/MySQL 中毫无问题地做到这一点,但重力形式的东西让我很难过。

【问题讨论】:

    标签: wordpress gravity-forms-plugin


    【解决方案1】:

    您的问题不够清楚,有待解释。但是,由于我也遇到了多页重力表单的问题,并且在网上几乎找不到帮助,所以这是我的经验。

    如果您从一页转到下一页,您可以使用rgpost("input_" . YOUR_FIELD_ID); 访问前一页中的字段值。复选框集合由“input_”.FIELD_ID.“_”.OPTION_INDEX 访问。根据我的经验,动态填充的下拉菜单似乎被重置了。如果您遇到这种情况,在转到下一页之前,您可以将这些字段中的任何值复制到隐藏字段中,然后从隐藏字段中读取。

    即使触发了相应的挂钩,也不会更新已经具有默认值 (field->defaultValue) 的字段。例如:add_filter('gform_field_value_my_field', 'populate_your_field')。您在 populate_your_field 中返回的值的转储将显示与您检查 my_field 时不同的值,my_field 应该接收此值。 my_field 将保留它收到的第一个值并且不会再改变。

    当您的字段依赖于先前页面的字段输入并且用户来回更改这些字段时,这是一个问题。您的依赖字段不会在任何挂钩上更新。我已经对 gform_field_value、gform_pre_render、gform_field_validation 和 gform_post_paging 进行了广泛的测试。

    我找到了一个解决方案:在 gform_pre_render 挂钩中回显一个带有数据属性的隐藏 div,并通过 javascript 填充字段。

    add_filter('gform_pre_render', 'dynamic_population', 10, 1); function dynamic_population($form) { echo "<div id='my_data' style='display:none' data-myjsonarray='.json_encode(my_json_array).'></div>"; }

    在您的重力表单中,您可以创建一个 html 字段并在其中添加 javascript。

    <script> window.onload = function() { //custom function that fills given gform dropdown with given array fill_dropdown( jQuery('#input_1_1'), jQuery('#my_data').data('myjsonarray') ); } </script>

    希望这对某人有所帮助。

    【讨论】:

      【解决方案2】:

      Gravity Forms Populate Anything 可以很好地处理这个问题。

      1. 在表单中添加一个字段,供用户输入参考号。
      2. 根据提供的参考 ID 配置要填充条目数据的字段,其中匹配具有相同参考 ID 的条目:

      【讨论】:

        猜你喜欢
        • 2018-11-30
        • 2015-02-10
        • 2022-01-17
        • 2018-10-05
        • 2015-03-29
        • 2019-01-04
        • 1970-01-01
        • 1970-01-01
        • 2014-11-27
        相关资源
        最近更新 更多