如何获得带有重力表单的自定义输入字段标签?

时间:2020-04-19 作者:SERG

我想得到一个JSON对象,比如[{"Video link": "https://www.youtube.com/watch?v=r",....},...] 来自带有“标签”的表单条目。现在我正在使用此代码

$form_id = \'1\';
$form = GFAPI::get_form( $form_id );

            $labels = [];
            foreach ($form[\'fields\'] as $key => $value) {
                $labels[$value[\'id\']] = $value[\'label\'];
            }

            $data = [];
            $i = 0;

            $entries = GFAPI::get_entries($form_id);
            foreach ($entries as $entry) {
                foreach ($entry as $key => $value) {
                    if(isset($labels[$key])){
                        $data[$i][$labels[$key]] = $value;
                    }else{
                        $data[$i][$key] = $value;
                    }
                }
                $i++;
            }

            echo \'<script>const data = \'.json_encode($data).\'</script>\';
问题在于自定义字段标签名称,如["id"]=> int(11) ["label"]=> string(10) "Video link". 因此,我必须将它们放入$标签数组中,如[11]=>“视频链接”,然后使用$条目运行2个循环,以创建一个新的数组$数据。有什么简单的方法可以做到这一点吗?

1 个回复
最合适的回答,由SO网友:Dave from Gravity Wiz 整理而成

我不确定有多少可以做的来真正简化这个。。。你对需要做什么肯定有正确的想法。这里有一个例子,您可能会考虑通过删除而不是预取标签来简化它。这种简单的版本性能较差,可以忽略不计。

$form_id = \'1\';
$form    = GFAPI::get_form( $form_id );
$entries = GFAPI::get_entries( $form_id );

$data = [];

foreach ( $entries as $index => $entry ) {
    foreach ( $entry as $key => $value ) {
        $field = GFAPI::get_field( $form, $key );
        $label = $field ? $field->get_field_label( false, \'\' ) : $key;
        $data[ $i ][ $label ] = $value;
    }
    $i++;
}

echo \'<script>const data = \' . json_encode( $data ) . \'</script>\';

相关推荐

WordPress中的json解码问题-值返回不一致

我有一个json文件,我正在wordpress网站上显示其中的内容。这个问题源于这样一个事实,即我返回的一些值需要稍后进行排序,虽然该值作为文本进行回显,但撇号将显示为撇号,但是如果我在HTML中回显完全相同的值(如作为数据属性或javascript),它将作为单个引号返回。我需要这个值来返回相同的格式,无论它在哪里被回显。这是因为这些数据稍后将用于过滤大型数据表。<?php $content = file_get_contents(\'jsonfilepath\'); $x = json_