Доступ к веб-форме 4 Отправленные данные


У меня есть веб-форма на моем сайте, и при отправке пользователем я хочу отправить данные веб-формы в какое-нибудь php-приложение, которое получает значение некоторых переменных из URL-адреса.

Эта задача требует, чтобы я получил доступ к отправленным данным веб-формы, когда пользователь нажимает кнопку "Отправить" и создает URL-адрес (/myphpapplication?запрос=....), содержащий заполненные пользователем значения веб-формы. Пожалуйста, помогите мне достичь этого.

 1
Author: kiamlaluno, 2012-08-18

3 answers

Как упоминал Освальд, вам необходимо внедрить некоторые крючки в свой пользовательский модуль, чтобы перенаправить отправку формы. Вот краткий пример (предположим, что ваш идентификатор form_id равен "webform_client_form_1"):

// hook_form_alter()
function customform_form_alter(&$form, &$form_state, $form_id) {

if ($form_id == 'webform_client_form_1') {
    // Add form_submit() handler
    $form['#submit'][] = 'customform_webform_submit';
}

}

// form_submit()
function customform_webform_submit($form, &$form_state) {

// Submited values are in $form_state['values']['submitted_tree']
$field_values = customform_webform_values( $form_state['values']['submitted_tree']    );

// Build URL Query
$query = '';

foreach ($field_values as $value) {
    $query .= $value . '&';
}

$redirect = array ( 
                'myphpapplication',
                array (
                    'query' => array ( 
                        'query' => rtrim( $query, "&" )  // Get 'query' values with $_GET['query']
                    ) 
                ) 
            );

$form_state['redirect'] = $redirect;

}

// Recurse through webfrom submited values
function customform_webform_values($component) {

static $webform;

foreach($component as $key => $value) {
    if (is_array($value)) {
        customform_webform_values($value);
    }
    else {
        $webform[$key] = $value;
    }
}

return $webform;
}

 2
Author: Gabriel, 2012-08-18 11:51:20

Реализуйте hook_form_alter() или один из его родственников, добавив обработчик отправки в форму (т.Е. в $form['#отправить']).

Чтобы узнать правильное значение параметра $form_id, ваша первая реализация hook_form_alter() может просто drupal_set_message() этого параметра. Используйте тот же метод, чтобы узнать, как ваш обработчик отправки получает значения формы в $form_state['values'].

 0
Author: Oswald, 2012-08-18 11:46:46

Я опаздываю с ответом, но, возможно, это может кому-то помочь

Данные веб-формы 4 также могут быть доступны с помощью крючков веб-формы, как в следующем коде.

function mymodule_webform_submission_insert($node, $submission) {
  if ($node->nid == 1) {
    $submitted_data = $submission->data;
    print_r( $submitted_data); // This will give you all the submitted value in a form of array which you can use according to your requirements.
  }        
}

Вы можете реализовать это в пользовательском модуле: Не забудьте заменить mymodule именем вашего модуля.

 0
Author: Kamlendra, 2019-06-06 17:21:23