Задать вопрос

Почему выводится тело сайта вместо результата формы?

Добавил обработку в init.php
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("wsAfterForm", "wsOnAfterResultAdd"));
    class wsAfterForm {
        function wsOnAfterResultAdd(&$arFields) {
            if ($arFields["IBLOCK_ID"] == 15) {
                global $USER;
                $USER_ID = $USER->GetID();
                $user = new CUser;
                $fields = Array(
                    "UF_CLIENT" => "1",
                );
                $user -> Update($USER_ID, $fields);
                return false; // Пробовал убирать или добавлять, не помогает
            }
        }
    }


После отправки формы ID 15 пользователю в доп. поле UF_CLIENT дописывается 1.
Но вместо сообщения "Вы отправили ваш запрос" выводиться тело сайта, т.е. сайт в сайте.
Что делаю не так?
Если обработку убрать то сообщение о успешной отправке выводится как нужно.
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 11 комментариев
Решения вопроса 1
Medik18
@Medik18 Автор вопроса
Пользователь PetrPo в комментариях помог разботаться с проблемой.
Форма на инфоблоке с AJAX, выключил AJAX и стало работать как надо.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
rpsv
@rpsv
делай либо хорошо, либо никак
return false лишняя конструкция, т.к. в события after уже ничего не отменяется.

Вывод сообщения "Вы отправили ваш запрос", точно не в этом куске кода делается.

Тело сайта у вас выводится скорее всего вместе с ошибкой, смотрите код который отдается, и лог проверяйте.
И по хорошему бы еще добавить проверку, а авторизован ли пользователь?

Добавьте методу модификаторы public static function, чтобы однозначно его идентифицировать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы