Признаюсь, что создаю пока вторую форму, вооруженную AHAH;
Столкнулся с тем, что если возвращать обычный текст, то вставляется, если же HTML - то нет (зависает прогресс-бар). Это касается именно этой формы.
FireBug'ом проследил, что останавливается на Drupal.ahahError, который в свою очередь вызывается из-за установленно status="parseerror". Собственно, ломаю голову, где этот status может быть установлен. В ahah.js не нашел. jquery перерывать - ужас...
Для формирования добавляемого HTML реализован callback:
$output = '';
$form_build_id = $_POST['form_build_id'];
$form_id = $_POST['form_id'];
$form_state = array('submitted' => FALSE);
$form = form_get_cache($form_build_id, $form_state);
//Изменение формы:
// .... пропущено ...
form_set_cache($form_build_id, $form, $form_state);
$form['#post'] = $_POST;
$form['#redirect'] = FALSE;
$form['#programmed'] = FALSE;
$form = form_builder($form_id, $form, $form_state);
//$output = "<br/>111"; //не работает
$output = "111"; //работает
drupal_json(array('status' => TRUE, 'data' => $output));
}
Кто нибудь сталкивался с таким? Как выходили из этой ситуации? В чем была причина в вашем случае?
Комментарии
Ты меня уиграл, у меня не было такого, но не удивлюсь что проблема сам знаешь в чём
все возможно
По-моему, объект должен быть частью формы (ибо AHAH), т.е. элементом формы.
Возвращаться должен через drupal_render () примерно так:
не, не, не - не обязательно частью формы
ведь drupal_render возвращает всего навсего строку с html-кодом
этот вариант в оригинале и используется, для теста я убрал просто.
----
тут трабла то стопудово в js , т.к. со стороны сервера идет возврат
$form['#action'] = 'smth_page' скорее всего явно не указано