[Решено] Webform: после отправки перекидывает на страницу материала

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

Аватар пользователя molp molp 11 сентября 2012 в 12:38

Делаю поле для заказа звонка. После ввода номера телефона пользователем, он должен отправляться на мыло админа. Блок с формой вывожу при помощи Views. Все просто, но возникла проблема.

После ввода номера телефона и нажатия кнопки submit меня перекидывает на страницу материала webform.
Причем это както связано с моей темой оформления, потому что, если переключить тему на любую из стандартных, то все срабатывает без проблем.

Подскажите, в чем может быть проблема?

Комментарии

Аватар пользователя AI AI 11 сентября 2012 в 13:29

"molp" wrote:
в чем может быть проблема?

Сами ответили на свой вопрос:
"molp" wrote:
Причем это связано с моей темой оформления

К сожалению, медиумов нет, а доступ к Вашим кодам не имеем.
Могу предположить, что в Вашей теме есть пересечение названий стилей с теми вещами, которые использует webform для целей явно не стилестических... Возможно, что это даже и не стили, а функции, которые Вы используете для вывода красявок в дизайне, и они используют куски от webform.

Аватар пользователя molp molp 12 сентября 2012 в 13:42

"q2_faith" wrote:
выведите без вьюшки

Ошибся. В этот раз выводил как раз блоком Webform.

"AI" wrote:
Возможно, что это даже и не стили, а функции, которые Вы используете для вывода красявок в дизайне, и они используют куски от webform.

Спасибо. Вы были правы.
Чтото не так натемизировал в template.php:

<?php
    
function mytheme_form_alter(&$form, &$form_state$form_id) {

        if (

$form_id == 'search_block_form') {
            
$deftext1 t('введите слово для поиска');
            
$form['search_block_form']['#default_value'] = $deftext1;
            
$form['actions']['submit']['#value'] = t('');
            
$form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = '".$deftext1."';}";
            
$form['search_block_form']['#attributes']['onfocus'] = "if (this.value == '".$deftext1."') {this.value = '';}";
        }
    
        if (
$form_id == 'webform_client_form_1') {
            
$deftext2 t('введите номер и нажмите Enter');
            
$form['submitted']['callback']['#default_value'] = $deftext2;
            
$form['actions']['submit']['#value'] = t('');
            
$form['submitted']['callback']['#attributes']['onblur'] = "if (this.value == '') {this.value = '".$deftext2."';}";
            
$form['submitted']['callback']['#attributes']['onfocus'] = "if (this.value == '".$deftext2."') {this.value = '';}";
        }
                
    };
?>
Аватар пользователя molp molp 10 ноября 2015 в 11:48

Методом исключения, пришел к тому, что все дело в строке:

<?php
$form
['actions']['submit']['#value'] = t('');
?>

Если ее закоментировать, то все будет работать. Но почему она может вызывать проблему? Ведь названия все правильные (прикрепил скрин).
И как тогда очистить value у кнопки?

Аватар пользователя molp molp 12 сентября 2012 в 16:28

"q2_faith" wrote:
зачем эта строчка нужна в template.php?

Такой способ темизации я нашел на данном форуме. В частности эта строка удаляет value у кнопки submit.

Аватар пользователя molp molp 12 сентября 2012 в 18:01

"q2_faith" wrote:
так это в настройках вебформ можно сделать

Для поля действительно можно, проглядел. Спасибо.
Для кнопки к сожалению нет.

Аватар пользователя molp molp 12 сентября 2012 в 21:10

"q2_faith" wrote:
webform -> Form settings -> advanced settings -> Submit button text

Уверен - это темные силы скрывали ее от меня. Спасибо.
А если кратко, то что не так со способом который использовал я?

Аватар пользователя q2_faith q2_faith 12 сентября 2012 в 23:06

"molp" wrote:
А если кратко, то что не так со способом который использовал я?

Form API не самое мое сильное место))) так сразу и не скажу)