Как заставить произвольную форму обрабатываться через POST запрос?
Прислано: v1adimir
ср, 01/07/2009 - 11:47
Есть некая сгенерированная друпалом форма. Сейчас ее обработка происходит через GET запрос.
Есть ли возможность заставить форму выполняться через POST без хаканья самого модуля генерирующего форму? Через form_alter, может быть... При вызове через GET происходит превышение максимальной длинны URL'а. Это в продолжении темы http://drupal.ru/node/31213
- v1adimir's blog
- Для комментирования войдите или зарегистрируйтесь
<?php
my_module_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'MY_FORM_ID') {
$form['#method'] = 'post';
}
}
?>- Для комментирования войдите или зарегистрируйтесь
Модифицировать запрос для нужной формы получилось достаточно легко. Однако новая странная проблема – обработчик формы не видит данных приходящих по POST запросу. Ни для стандартного submit, ни для AJAX.
Подскажите, в чем может быть проблема, какой hook мучать и не есть ли это какое-нибудь принципиальное ограничение?
На всякий случай повторюсь, это форма есть exposed filters для view.
P.S. В процессе мучений поэкспериментировал с «Drupal for Firebug». Полезный инструмент оказался, кому интересно, вот тут подробнее http://www.drupal.ru/node/18800
- Для комментирования войдите или зарегистрируйтесь
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
- Для комментирования войдите или зарегистрируйтесь
Пытаюсь сейчас решить такую же проблему. v1adimir, справились с решением?
- Для комментирования войдите или зарегистрируйтесь




Комментарии