Ajax подгрузка ajax формы

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

Аватар пользователя anzebra anzebra 6 декабря 2011 в 14:27

Есть страничка на которую ajax-ом подгружается форма регистрации. При єтом форма регистрации содержит динамические элементы, например в зависимости от региона подгружается список городов. И если форму подгружать ajax -oм, то не работает ajax подгрузка городов на форме регистрации, я подозреваю что там не хватает каких-то джаваскриптов.

Комментарии

Аватар пользователя anzebra anzebra 6 декабря 2011 в 14:55

возвращаю html и с помощью jQuery достаю нужный кусок(в конкретном случае форму регистрации). Туповато конечно, правильно возвращать только форму а не весь html. Но в любом случае будет такая проблема.

Аватар пользователя kalabro kalabro 6 декабря 2011 в 15:29

чтобы не было конфликтов с ajax-фреймворком друпала, нужно использовать его же. пример можно посмотреть в модуле Examples (Ajax Examples), пункты Ajax Link ("use-ajax" class) или Ajax Link (Renderable Array).

Чтобы отдать аяксом форму вам нужно вызвать drupal_render() для этой формы.
Пример:


<?php
function YOUR_MODULE_ajax_link_response($type 'ajax') {
  
$form drupal_get_form('ajax_example_autocheckboxes');
  if (
$type == 'ajax') {
    
$output drupal_render($form);
    
$commands = array();
    
$commands[] = ajax_command_replace('#myDiv'$output);
    
$page = array('#type' => 'ajax''#commands' => $commands);
    
ajax_deliver($page);
  }
  else {
    return 
$form;
  }
}
?>