Gravityforms 在主题 functions.php 的下拉菜单中填充所选值
Gravityforms populate selected value on dropdown within theme functions.php
我正在使用 gravityforms 动态地使用数据库值预填充表单,这很有效。在构建表单时,我需要能够确定默认情况下这些选项中的哪些是 selected,但我找不到这样做的选项。我已经看到了占位符,但我认为下拉列表中实际上没有 select 任何内容。一旦我在数组中构建了所有 text/value 对并设置了选项,我就找不到任何允许我设置“selected”选项的文档或参考资料。
该函数(我已在此处编辑)工作正常并填充该字段,我只需要填充一个占位符 and/or 默认 selected 值。
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;
}
如果有更好的方法来填充此字段,我愿意接受建议,因为使用此方法时表单加载速度似乎有点慢。否则,我很想知道如何在填充选项后设置 selected 选择值。
快速回答是,我找到了一个“isSelected”选项,可以在定义选项时将其包含在数组中。我添加了一个三元运算来匹配我想要选择的内容,它为我设置了“选择值。
$isSelected = ($listItem->variable == "value I want to select") ? true : false;
$list1C[] = array('text' => $listItem->variable, 'value' => $listItem->variable, 'isSelected' => $isSelected);
添加三元选择并更改数组推送允许我将值设置为选中。
我正在使用 gravityforms 动态地使用数据库值预填充表单,这很有效。在构建表单时,我需要能够确定默认情况下这些选项中的哪些是 selected,但我找不到这样做的选项。我已经看到了占位符,但我认为下拉列表中实际上没有 select 任何内容。一旦我在数组中构建了所有 text/value 对并设置了选项,我就找不到任何允许我设置“selected”选项的文档或参考资料。
该函数(我已在此处编辑)工作正常并填充该字段,我只需要填充一个占位符 and/or 默认 selected 值。
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;
}
如果有更好的方法来填充此字段,我愿意接受建议,因为使用此方法时表单加载速度似乎有点慢。否则,我很想知道如何在填充选项后设置 selected 选择值。
快速回答是,我找到了一个“isSelected”选项,可以在定义选项时将其包含在数组中。我添加了一个三元运算来匹配我想要选择的内容,它为我设置了“选择值。
$isSelected = ($listItem->variable == "value I want to select") ? true : false;
$list1C[] = array('text' => $listItem->variable, 'value' => $listItem->variable, 'isSelected' => $isSelected);
添加三元选择并更改数组推送允许我将值设置为选中。