默认情况下,复选框的“重力表单”合并标记会输出所选选项的值。如果他们对问题的选择是英语,西班牙语和其他,并且用户选择英语,则合并标记输出:
english
我的最终目标是能够为复选框自定义重力表合并标记输出,以包括所有选项,类似复选框的格式和选中的选项(复选框已选中)。
现在,我可以返回所有选项。使用此功能,
add_action( 'gform_pre_submission_3', 'pre_submission_handler' ); function pre_submission_handler( $form ) {
foreach($form['fields'] as &$field) {
if($field['id'] === 13) {
//$selectData['inputs'] = $field['inputs'];
$selectData['selections'] = $field['choices'];
$the_fields = $selectData;
foreach ($the_fields as $fields) {
print_r($fields);
}
}
}
我得到了输出:
Array (
[0] => Array (
[text] => English
[value] => Language: English
[isSelected] =>
[price] =>
)
[1] => Array (
[text] => Spanish
[value] => Language: Spanish
[isSelected] =>
[price] =>
)
[2] => Array (
[text] => Other (specify)
[value] => Other
[isSelected] =>
[price] =>
)
)
但是,[isSelected]没有变量。在GF论坛上,其他人也遇到了同样的问题。 GF说'在预提交过滤器中,该条目尚未创建,因此您可以通过检查$ _POST变量来保持提交的值。每个复选框项都有自己的变量。例如,假设我有一个复选框字段,其字段ID为1,它有3个选项,然后我将访问每个选项的值,如下所示:'
$value_of_first_checkbox = $_POST["input_2_1"];
$value_of_second_checkbox = $_POST["input_2_2"];
$value_of_third_checkbox = $_POST["input_2_3"];
我尝试使用类似的行运行该函数,但是当我在确认页面上回显$value_of_first_checkbox
时,不会得到任何结果。如何使用$ _POST输出正确的值?
答案 0 :(得分:0)
要正确诊断这一点,您应该var_dump($_POST)
检查实际发布的内容,看看是否只是指定了错误的密钥。