Gravityforms在theme functions.php中的下拉列表中填充选定值

Gravityforms在theme functions.php中的下拉列表中填充选定值,php,function,dynamic,populate,gravityforms,Php,Function,Dynamic,Populate,Gravityforms,我正在gravityforms中工作,用数据库值动态地预填充表单,这是可行的。我需要能够指定在构建表单时默认选择这些选项中的哪一个,但我找不到这样做的选项。我已经看到了占位符,但我认为它实际上没有在下拉列表中选择任何内容。一旦我在数组中构建了所有文本/值对并设置了选项,我就无法找到任何允许我设置“选定”选项的文档或引用 这个函数(我在这里编辑过)运行良好,可以填充字段,我只需要填充一个占位符和/或默认的选定值 add_filter('gform_pre_render_1', 'getFieldV

我正在gravityforms中工作,用数据库值动态地预填充表单,这是可行的。我需要能够指定在构建表单时默认选择这些选项中的哪一个,但我找不到这样做的选项。我已经看到了占位符,但我认为它实际上没有在下拉列表中选择任何内容。一旦我在数组中构建了所有文本/值对并设置了选项,我就无法找到任何允许我设置“选定”选项的文档或引用

这个函数(我在这里编辑过)运行良好,可以填充字段,我只需要填充一个占位符和/或默认的选定值

add_filter('gform_pre_render_1', 'getFieldValues');
add_filter('gform_pre_validation_1', 'getFieldValues');
add_filter('gform_pre_submission_filter_1', 'getFieldValues');
function getFieldValues($form) {
    global $wpdb;
    foreach ($form['fields'] as $field) {
        if ($field->id == '40') {
            // get the list of values from the Database
            $list1Q = "SELECT <data> FROM <table> WHERE <params> = <value>";
            $list1R = $wpdb->get_results($list1Q);
            // Generate a nice array that Gravity Forms can understand
            if (!empty($list1R)) {
                $list1A[] = array();
                foreach ($list1A as $listItem) {
                    // Add current value to the array for dropdown choices
                    $list1C[] = array('text' => $listItem->variable, 'value' => $listItem->variable);
                 }
            }
            // Set choices to field
            $field->choices = $List1C;
            ***** THIS IS WHERE I WOULD LIKE TO SET THE SELECTED VALUE *****
        }
    }
    return $form;
}
add_filter('gform_pre_render_1','getFieldValues');
添加_过滤器('gform_pre_validation_1','getFieldValues');
添加过滤器('gform_pre_submission_filter_1','getFieldValues');
函数getFieldValues($form){
全球$wpdb;
foreach($form['fields']作为$field){
如果($field->id='40'){
//从数据库中获取值列表
$list1Q=“从何处选择=”;
$list1R=$wpdb->get_results($list1Q);
//生成重力形态可以理解的漂亮数组
如果(!空($list1R)){
$list1A[]=array();
foreach($list1A作为$listItem){
//将当前值添加到数组以进行下拉选择
$list1C[]=array('text'=>$listItem->variable,'value'=>$listItem->variable);
}
}
//将选项设置为字段
$field->choices=$List1C;
*****这是我想要设置所选值的地方*****
}
}
返回$表格;
}

如果有更好的方法来填充此字段,我愿意接受建议,因为使用此方法加载表单似乎有点慢。否则,我很想知道如何在填充选项后设置选定的选项值。

快速回答是,我为“isSelected”找到了一个选项,可以在定义选项时包含在数组中。我添加了一个三元操作来匹配我想要选择的内容,它为我设置了“selected value”

$isSelected = ($listItem->variable == "value I want to select") ? true : false;
$list1C[] = array('text' => $listItem->variable, 'value' => $listItem->variable, 'isSelected' => $isSelected);

添加三元选择和更改数组推送允许我将值设置为选中值。

我知道您可能正在寻找基于代码的解决方案,因此我将把它作为注释而不是建议的答案;但是,填充任何内容都可以轻松实现这一点,允许您填充选项和字段的默认值从你的数据库中,没有代码。虽然我很喜欢输入,但你是否只是想向我推销你的产品?(是的,我知道我征求意见)@Gravity Wiz的Dave-购买Gravity Wiz是否允许使用所有32种工具,还是单独购买?基本许可证在一个站点上为您提供一种特权。Pro在无限站点上为您提供所有特权。