Как заставить произвольную форму обрабатываться через POST запрос?

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

Аватар пользователя v1adimir v1adimir 1 июля 2009 в 15:47

Есть некая сгенерированная друпалом форма. Сейчас ее обработка происходит через GET запрос.

Есть ли возможность заставить форму выполняться через POST без хаканья самого модуля генерирующего форму? Через form_alter, может быть... При вызове через GET происходит превышение максимальной длинны URL'а. Это в продолжении темы http://drupal.ru/node/31213

Комментарии

Аватар пользователя v1adimir v1adimir 6 июля 2009 в 21:43

Модифицировать запрос для нужной формы получилось достаточно легко. Однако новая странная проблема – обработчик формы не видит данных приходящих по POST запросу. Ни для стандартного submit, ни для AJAX.

Подскажите, в чем может быть проблема, какой hook мучать и не есть ли это какое-нибудь принципиальное ограничение?

На всякий случай повторюсь, это форма есть exposed filters для view.

P.S. В процессе мучений поэкспериментировал с «Drupal for Firebug». Полезный инструмент оказался, кому интересно, вот тут подробнее http://www.drupal.ru/node/18800

Аватар пользователя gorr gorr 7 июля 2009 в 14:31

views использует свой formapi, отличающийся от друпальского, в нем вместо drupal_get_form() вызывается drupal_build_form()
Может быть там какая-то загвоздка, также смотрите вот эти функции:
http://drupalcontrib.org/api/function/views_exposed_form/6
http://drupalcontrib.org/api/function/views_exposed_form_validate/6
http://drupalcontrib.org/api/function/views_exposed_form_submit/6