X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ругается при Ajax-запросе., jQuery
gaaarfild
gaaarfild
Topic Starter сообщение 2.5.2010, 1:26; Ответить: gaaarfild
Сообщение #1


У меня есть функция, которая удаляет данные определенной строки таблицы и скрывает эту строку.
Проблема в том, что все работает вроде-бы. Но если привязывать loader этой функцией:
$(function(){
$(".loading").bind("ajaxSend",function(){
$(this).show();
}).bind("ajaxComplete",function(){
$(this).hide();
});
});

то при исполнении функции удаления
function ajax_get_d(form, link, mess, row)
{
var str = $('#'+form).serialize();
$.post("index2.php?"+link, str, function(data){$('#'+mess).html(data);});
document.getElementById(row).style.display = 'none';
}

вот этой ссылкой:
<a href='java script:void(0);' onclick="ajax_get_d('form', 'mod=delete&do=del_polis&id=$id', '', 'pol$id'); return false;">Удалить</a>

иконка Loader появляется, но не исчезает больше, хотя действие и выполнено.
А OPERA выдает вот такую ошибку
Uncaught exception: Syntax error, unrecognized expression: #
Error thrown at line 2904, column 1 in <anonymous function: Sizzle.error>(msg) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
throw "Syntax error, unrecognized expression: " + msg;
called from line 2891, column 4 in <anonymous function: Sizzle.filter>(expr, set, inplace, not) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
Sizzle.error( expr );
called from line 2705, column 3 in <anonymous function>(selector, context, results, seed) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
called from line 3534, column 3 in <anonymous function: Sizzle>(query, context, extra, seed) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
return oldSizzle(query, context, extra, seed);
called from line 3730, column 3 in <anonymous function: find>(selector) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
jQuery.find( selector, this[i], ret );
called from line 161, column 4 in <anonymous function: init>(selector, context) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
return (context || rootjQuery).find( selector );
called from line 21, column 2 in <anonymous function>(selector, context) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
return new jQuery.fn.init( selector, context );
called from line 43, column 91 in <anonymous function>(data) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/index.php?mod=polis:"]http://pacient1/index.php?mod=polis:[/url]
$('#'+mess).html(data);
called from line 5267, column 4 in success() in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
s.success.call( callbackContext, data, status, xhr );
called via Function.prototype.call() from line 5207, column 6 in <anonymous function: xhr.onreadystatechange>(isTimeout) in [url="http://www.masterwebs.ru/go.php?url=http://pacient1/includes/javascript/jquery.js:"]http://pacient1/includes/javascript/jquery.js:[/url]
success();

Использую, естественно jQuery 1.4
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.5.2010, 15:01; Ответить: ZiTosS
Сообщение #2


gaaarfild,
1) Ты уверен что строка из базу удаляется, а так же ппроверь статус, который возвращает сервер. Скорее всего это не 200 - ОК, возможно у тебя ошибка возникает на стороне сервера. Попробуй вывести с помощью alert, то что приходит от сервера, да и статус не мешало бы. ajaxComplete, вызывется, только при удачном завершении ajax-запроса.
2) Ты не прав в этом куске кода:
function ajax_get_d(form, link, mess, row)
{
    var str = $('#'+form).serialize();
    $.post("index2.php?"+link, str, function(data){$('#'+mess).html(data);});
    document.getElementById(row).style.display = 'none';
}

У тебя независимо от состояния сервера, которое он вернет, он даже может вернуть ошибку, строка таблицы скроется...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 3.5.2010, 2:38; Ответить: gaaarfild
Сообщение #3


Ну из базы-то он точно удаляет. Это факт. А какая функция возвращает ответ сервера? Или как его проверить.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.5.2010, 8:07; Ответить: ZiTosS
Сообщение #4


gaaarfild, выведи alert'ом переменную data в функции. Ещё назнач http://api.jquery.com/ajaxError/ для проверки на ошибки
Кстати, ошибка в Opera возникает тут:
function(data){$('#'+mess).html(data);}

Ты вместо mess, передаешь пустую строку, а jQuery сообщает об ошибке селектора $('#')
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 3.5.2010, 23:12; Ответить: gaaarfild
Сообщение #5


Ну, гипотетически, в данном случае мне ненужно выводить ответ сервера на страницу. Как мне прописать, селектор?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.5.2010, 23:19; Ответить: ZiTosS
Сообщение #6


gaaarfild, можно оставить третий параметр функции post пустым.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 3.5.2010, 23:20; Ответить: gaaarfild
Сообщение #7


Логишно. =)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 4.5.2010, 0:06; Ответить: gaaarfild
Сообщение #8


Действительно, проблема была в этом.
Достаточно было заменить эту строчку
function(data){$('#'+mess).html(data);}


на эту

function(data){$(mess).html(data);}


И теперь параметр был пустым. И больше данная ошибка не возникала. И лоудер пропадает.
Огромное спасибо.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 4.5.2010, 12:56; Ответить: ZiTosS
Сообщение #9


gaaarfild, всегда пожалуйста. И запомни одна - первая и может даже манусенькая ошибка, может породить что-либо невообразимое.
У тебя jQuery пытался обратиться к несуществующему элементу HTML и занести в него содержимое ответа. Естественно jQuery взбунтовалось, а javascript после первой же синтаксической ошибки пропускает все операторы идущие далее.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 4.5.2010, 15:20; Ответить: gaaarfild
Сообщение #10


Принял к сведению. На ошибках учимся. =)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на первый заказ.
Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на п
6 stu999 1551 21.3.2024, 20:45
автор: stu999
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44766 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Получил странную ссылку при линкбилдинге
Как поведет себя поиск при обнаружении странной ссылке?
10 r0mZet 2179 24.10.2022, 19:23
автор: Wachowski
Горячая тема (нет новых ответов) 300 площадок под вечные ссылки на выбор: ТИЦ 20-9400, PR 0-6, ЯК, DMOZ. Скидки при пакетном заказе!
65 inkon 30256 19.7.2022, 13:41
автор: Funoman
Горячая тема (нет новых ответов) тИЦ отменили! Новый показатель Яндекса ИКС! Лучшие площадки под размещение. Бесплатное написание статей при любом заказе.
Эксклюзивное предложение. Успей получить написание статей БЕСПЛАТНО
71 VIMstat 78314 21.6.2022, 9:38
автор: VIMstat


 



RSS Текстовая версия Сейчас: 29.3.2024, 9:37
Дизайн