Как мне обновить более одного контейнера / элемента, используя AHAH в Drupal?

Я создаю сводный обзор продуктов и цен, а также возможность обновлять цены для каждого продукта (каждый продукт имеет 5 цен для различных ролей пользователей).

Я использую AHAH, чтобы отправить конкретную форму продукта, и она отлично работает, включая обновление старой формы новыми значениями и сообщение о том, что работа уже выполнена.

Однако до сих пор я могу обновить только один контейнер (тот, который содержал отправленную форму) - это будет означать, что представление может закончиться несколькими сообщениями об успехе повсюду.

Как заставить систему AHAH обновить два контейнера - один для отправленной формы и один для сообщения (который будет общим контейнером для всех форм).

1 ответ

Решение

AHAH заменяет содержимое именованной оболочки на значение 'data' в возвращенном ответе JSON.

Вы можете поместить все предметы рядом друг с другом в одну большую обертку, а затем в свой обратный вызов AHAH позвонить drupal_render для каждого элемента формы, как они должны быть показаны, объединяя выходные данные. например:

$html = drupal_render($form['item1']);
$html .= drupal_render($form['item2']);
$html .= drupal_render($form['item3']);
drupal_json(array( 'status' => TRUE, 'data' => $html ));
Другие вопросы по тегам