Помогите прикрутить ajax к полю page break (webform)

Главные вкладки

Аватар пользователя Pixelbroks Pixelbroks 8 декабря 2014 в 17:46

Добрый вечер. Вот почти сделал модальное окно с формой . но возникла проблема. При переходе на "следующую" страницу, форма сворачивается , а алерты полявляются уже на странице. Ну проще говоря обработчика не хватает.

Все чьл у мегя есть это ключ поля : trebuemye_dokumenty

Изображение с дебаггера

И код модуля где я прикручивал обработчик на кнопку "отправить/оформить"

<?php
 
function pixelbroks_form_alter(&$form, &$form_state$form_id) {
// do ajax submit generic for all the webform those have no redirect option enabled.
if($form['#node']->webform['redirect_url'] == "<none>"){
$matches = array();
//check whether the form id have nid at the end like _nid
preg_match('/[\d]+$/'$form_id$matches);
$nid_match $matches[0];
if(
strpos($form_id'webform_client_form_') == && !empty($nid_match)){
$form['actions']['submit'] = array(
'#type' => 'submit',
'#ajax' => array(
'callback' => 'webform_client_form_ajax_callback',
'wrapper' => str_replace('_','-',$form['#form_id']),
'effect' => 'fade',
),
'#value' => t('Оформить'),
);

}
}
}
 
function 

webform_client_form_ajax_callback($form, &$form_state) {
if(
form_get_errors()){
return 
$form;
}
else{
return 
$form['#node']->webform['confirmation'];
}
}

?>

Пробовал модули webform ajax , webform pager, webform ajax page.
webform ajax page очень блиок, но он сырой до безобразия. Когда на второй странице не проходишь валидацию, то форма вообще сбрасывается и тереряет всю многошаговость (я это на js делал) и это не качественно вообще.
Заранее спасибо большое

Комментарии

Аватар пользователя 6RUN0 6RUN0 9 декабря 2014 в 11:18

Ознакомся с материалом по ссылкам:

<?php
$form
['actions']['submit'] = array(
'#type' => 'submit',
'#ajax' => array(
'callback' => 'webform_client_form_ajax_callback',
'wrapper' => str_replace('_','-',$form['#form_id']),
'effect' => 'fade',
),
'#submit' => array('pixelbroks_form_submitalter'),
'#value' => t('Оформить'),
);

function 

pixelbroks_form_submitalter($form, &$form_state) {
$form_state['rebuild'] = TRUE;

}

?>