从查询字符串中获取值以填充忍者表单中的隐藏字段

时间:2014-08-15 作者:user961627

我添加了一个自定义页面模板,从数据库中提取可用作业的列表。

显示作业的页面称为jobs.

我正在使用Ninja forms 在名为apply.php, 其中包含职务申请的字段。

现在,对于jobs页面上提供的每个职务,我希望它是一个链接,用户可以单击该链接进行申请,并重定向到apply.php, 在那里,我可以获取作业id并将其保存在apply.php.

这样,当我保存申请人的提交时,我可以将其与他们申请的工作一起保存。

我已经添加了链接,如下所示:

?page_id=18&jid=2
其中18是申请页面的id,我在该页面上有忍者表单。

但是如何从查询字符串中获取jid并将其用于忍者表单字段?

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

@埃里克·艾伦的回答非常有效。

然而,我也与Ninjaforms的人取得了联系,他们的回答也很有效,所以我也将其张贴在这里。

他们告诉我:http://docs.ninjaforms.com/customer/en/portal/articles/1981032-filters-ninja_forms_field?b_id=9172

因此,根据我的问题调整它,解决方案是:

function filter_fetch_jid( $data, $field_id ){

    if( $field_id == 27 ){
        $job_id = $job_id = $_REQUEST[\'jid\'];
        $data[\'default_value\'] = $job_id ;
    }
    return $data;
}

add_filter( \'ninja_forms_field\', \'filter_fetch_jid\',  10, 27);

SO网友:Eric Allen

看起来你可以使用ninja_forms_display_init 填充字段的操作。

要从上面提到的URL获取作业ID,可以使用$_GET 大堆

调整文档页面中的代码,类似这样的内容应该可以实现您想要的:

function wpse_158000_populate_field($form_id) {
    global $ninja_forms_loading;

    $job_id_field = 3; //put the id for your hidden field here

    //Change the value that a field is pre-populated with.
    $ninja_forms_loading->update_field_value($job_id_field, $_GET[\'jid\']);
}

add_action(\'ninja_forms_display_init\', \'wpse_158000_populate_field\');
他们的documentation 列出了许多其他可以关联的操作。

如果您喜欢使用更干净的URL,那么您可能希望挂接到rewrite_rules_array 然后你可以有一个更像http://www.example.com/apply/2 其中2是他们正在申请的工作的ID,apply是您的申请页面的slug。

您还可以进一步推动这一点,并为该作业使用slug,而不是为更好的URL使用ID,然后通过slug获取该作业的ID,并将该ID添加到隐藏字段的值中。

结束

相关推荐

在使用GravityForms上传工具时,如何通过函数更改图片的作者?

我想知道是否有办法手动更改图像的作者。我使用的Gravity表单将帖子作者设置为当前用户,但不会将他们设置为上传图像的作者。我想可能有一种方法可以添加一个函数,该函数可以查找当前用户,然后设置他们上传给该用户的图像的作者。