Как показать вход редактирования в форме гравитации с вложенной формой, чтобы добавить несколько человек и показать в таPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как показать вход редактирования в форме гравитации с вложенной формой, чтобы добавить несколько человек и показать в та

Сообщение Anonymous »

Я хочу отредактировать вход формы по гравитации на фронте. Я хочу, чтобы он показал предыдущую добавленную запись в вложенной форме, когда мы редактируем гравитационную форму с Frontend. Я использовал ниже код, но он не работает по функции, когда я получаю вложенную запись формы. Но я не знаю, как установить его в таблице, чтобы отобразить предыдущую добавленную запись.
I USD ниже кода, но он не работает < /p>
add_filter('gform_pre_render_11', 'prefill_parent_form_data'); // Only for Form ID 11
add_filter('gform_pre_validation_11', 'prefill_parent_form_data');
add_filter('gform_pre_submission_filter_11', 'prefill_parent_form_data');

add_filter('gform_pre_render_12', 'prefill_nested_form_data'); // Only for Nested Form (Form 12)
add_filter('gform_pre_validation_12', 'prefill_nested_form_data');
add_filter('gform_pre_submission_filter_12', 'prefill_nested_form_data');

function prefill_parent_form_data($form) {
if (isset($_GET['entry']) && !empty($_GET['entry'])) {
$entry_id = absint($_GET['entry']);
$entry = GFAPI::get_entry($entry_id);

if (is_wp_error($entry) || $entry['form_id'] != 11) {
return $form; // Skip if wrong form
}
/*echo "";
print_r($entry);
echo "=============================";
print_r($form);*/
foreach ($form['fields'] as &$field) {
if ($field->type === 'name' && !empty($field->inputs)) {
foreach ($field->inputs as &$input) {
$sub_field_id = (string) $input['id'];
if (isset($entry[$sub_field_id])) {
$input['defaultValue'] = $entry[$sub_field_id];
}
}
}else if ($field->type === 'form' && isset($entry[$field->id])) {
$nested_form_field_id = 74;
$nested_form_entry_id = rgar($entry, $nested_form_field_id);

if ($nested_form_entry_id) {
$nested_form_entry = GFAPI::get_entry($nested_form_entry_id);
echo "";
print_r($nested_form_entry);exit;
if (!is_wp_error($nested_form_entry)) {
// Assuming nested form data is in fields 1 and 6 in nested form
$nested_field_1 = rgar($nested_form_entry, '1');
$nested_field_6 = rgar($nested_form_entry, '6');

// Create a table row with nested form data
$field->content = '

Nested Field 1
' . esc_html($nested_field_1) . '


Nested Field 6
' . esc_html($nested_field_6) . '

';
}
}
//$field->defaultValue = json_encode(array($nested_form_entry_ids));
}else if($field->type === 'checkbox'){
if ($field->type === 'checkbox' && isset($entry[$field->id])) {
$selected_inputs = maybe_unserialize($entry[$field->id]); // Get the selected options from entry

// If the entry has selected checkboxes
if (is_array($selected_inputs)) {
foreach ($field->inputs as $ky=>&$input) {
// Check if the input's ID is in the selected values from the entry
if (in_array($input['id'], $selected_inputs)) {
$field->choices[$ky]['isSelected'] = true; // Mark the checkbox as selected
} else {
$field->choices[$ky]['isSelected'] = false; // Mark the checkbox as not selected
}
}
}
} else {
foreach ($field->inputs as $ky=>&$input) {
if (isset($entry[$input['id']]) && $entry[$input['id']] != '') {
$field->choices[$ky]['isSelected'] = true;
} else {
$field->choices[$ky]['isSelected'] = false;
}
}
}
} else {
$value = rgar($entry, $field->id);
if (!empty($value)) {
$field->defaultValue = $value;
}
}
}
}
return $form;
}

function prefill_nested_form_data($form) {
if (isset($_GET['entry']) && !empty($_GET['entry'])) {
$parent_entry_id = absint($_GET['entry']);
$parent_entry = GFAPI::get_entry($parent_entry_id);

if (is_wp_error($parent_entry) || $parent_entry['form_id'] != 11) {
return $form;
}

// Find Nested Form Field in Parent Entry
foreach ($parent_entry as $field_id => $value) {
if (is_serialized($value)) {
$nested_entry_ids = maybe_unserialize($value);
if (is_array($nested_entry_ids)) {
foreach ($nested_entry_ids as $nested_entry_id) {
$nested_entry = GFAPI::get_entry($nested_entry_id);
if ($nested_entry && $nested_entry['form_id'] == 12) {
foreach ($form['fields'] as &$field) {
$field_id = $field->id;
if (isset($nested_entry[$field_id])) {
$field->defaultValue = $nested_entry[$field_id];
}
}
}
}
}
}
}
}
return $form;
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... e-person-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»