[Решено]AHAH и jQuery

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

Аватар пользователя m.rad m.rad 22 мая 2011 в 12:34

В общем проблема в следующем:

В модуле вешаю на кнопу АХАХ.
в .инфо файле темы добавляю jQuery-1.5.min.js
и АХАХ не работает, а Фаербаг докладывает следующее:

$(element_settings.element).parents("form").ajaxSubmit is not a function
ahah.js     line 99

стоит убрать библиотеку джиквери, ахах работает великолепно, но без джиквери то никак
потому что встроенная в ядро библиотека почемуто не передает аяксово $_GET массив, со всем остальным скриптом на сайте она в общем то справляется.

Собственно надо устранить какую то из этих проблем, либо конфликт ахаха и нового джиквери, либо передачу ГЕТ массива

jquery_update не спасает, более новые/старые библиотеки тоже

Комментарии

Аватар пользователя m.rad m.rad 22 мая 2011 в 14:39

вот весь ЯС код модуля

Drupal.behaviors.total_sum = function(context)
{
        $("#edit-save").bind('click',function ()
        {
                var gotov_sel = [];
                var k = $('.cuselText').length;
                for (i=1; i<=k; i++){
                                gotov_sel[i] = $('.cuselText').eq(i-1).text();
                        };
                var gotov = [];
                var k = $('input[type="text"]').length;
                for (i=1; i<=k; i++){
                                gotov[i] = $('input[type="text"]').eq(i-1).val();
                        };
        //      $.get(Drupal.settings.basePath + 'prof', {gotov:gotov, gotov_sel:gotov_sel} , null); на 1.5 работает и так
                $.ajax({    //и так
            url: Drupal.settings.basePath + 'prof',
            type: 'GET',
                        data: {gotov:gotov, gotov_sel:gotov_sel}
        });
                alert('секундочку');
        });
};

вот так хватаю в модуле

...
lists_session ('gotov', $_GET['gotov']);//записываем сессию
lists_session ('gotov_sel', $_GET['gotov_sel']);
...
function lists_session($key, $value = NULL) {
  if (isset($value)) {
    unset($_SESSION[$key]);
    $_SESSION[$key] = $value;
  }
  if (isset($_SESSION[$key])) {
    return $_SESSION[$key];
  }
}

повторюсь, что на 1.5 этот код работает

Аватар пользователя m.rad m.rad 22 мая 2011 в 18:54

решил задачу.

В общем старый жиКвери скушал следующий синтаксис передачи массива

               
$.ajax({
   url: Drupal.settings.basePath + 'prof',
   type: 'GET',
   data: {'gotov[]':gotov, 'gotov_sel[]':gotov_sel},
});

да, нужно было всего лишь добавить квадратные скобки. в новых библиотеках это не обязательно.