[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление методом AJAX
IamSmorodin
Есть комментарии. Добавляются они с помощью AJAX без обновления страницы. Тем же способом хочу их удалять. При добавлении, когда выполняется php-скрипт, формируется html-форма, которая передается обратно и потом обновляется в нужном месте с помощью innerHTML.

Там есть такая запись:

for ($i=1;$i<=mysql_num_rows($query);$i++)
{
...
$id_note = 'id'.$i;
echo"<table id=$id_note>....";
}


Я хотел такой записью каждому комментарию установить id -> id1,id2,id3 и т.д.
Правильно ли это? Могу ли я обращаться к комментарию потом с помощью getElementById

Так же там есть такая запись
...<a href='#' onClick='DeleteNote($id_note);'...

Но при клике функция не обрабатывается. Почему? Можете указать на мои ошибки? Спасибо.



Спустя 25 минут, 27 секунд (5.09.2010 - 14:13) Ice написал(а):
а не легче ли изменить запрос, чтобы дополнительно извлечь айдишник, чтобы потом его подставить куда надо?

Спустя 3 минуты, 18 секунд (5.09.2010 - 14:16) waldicom написал(а):
Можно потом не переписывать html, а просто удалять блок с определенным id, если ajax(удаление) отработал нормально

Спустя 20 часов, 38 минут, 11 секунд (6.09.2010 - 10:55) ApuktaChehov написал(а):
waldicom - читаешь мои мысли, ну или я твои biggrin.gif

Конечно, проще всего, отправить запрос на удаление, и если удаление прошло успешно, удалить нужный коммент на странице. А не перегружать все комменты из за удаления одного.

Спустя 1 день, 1 час, 51 минута, 27 секунд (7.09.2010 - 12:46) IamSmorodin написал(а):
Сделал удаление, чтобы все потом не перерисовывать rolleyes.gif

Но появилась другая проблемма. Когда добавляю новый коммент, тоже через ajax, тоже рисую в php-файле новую форму (html) и отправляю все это дело обратно. В этой форме есть ссылка, которой присвоен класс delete. По этой ссылке удаляется через функцию коммент.
Проблемма такая: когда открываешь страничку и удаляешь коммент, все нормально, но когда добавляешь коммент, этот коммент не удаляется, функция не срабатывает. То ли класс delete не распознает, то ли что.

Спустя 15 минут, 6 секунд (7.09.2010 - 13:01) ApuktaChehov написал(а):
Код в студию!

Спустя 4 минуты, 41 секунда (7.09.2010 - 13:06) IamSmorodin написал(а):
Функция удаления комментария:

<script type="text/javascript">
// скрываем индикатор обработки данных
$(document).ready(
function() {
$('#load').hide();
}
);

$(function() {
$(".delete").click(
function() {
$('#load').fadeIn();
var commentContainer = $(this).parent();
// получаем значение элемента
var id = $(this).attr("id");
var string = 'id='+ id ;

$.ajax({
type: "POST",
// файл-обработчик
url: "delete_notes.php",
data: string,
cache: false,
// сворачиваем удаленный комментарий, и выводим индикатор
success: function(){
commentContainer.slideUp('slow', function() {$(this).remove();});
$('#load').fadeOut();
}
}
);
return false;
}
);
});
</
script>


Вот, что возвращает PHP-скрипт при добавлении комментария:
$send = $send."
<p>
<br><span>"
.$mess."</span><br>
<a href='#' id="
.(int)$id_note." class='delete'>УДАЛИТЬ</a>
</p>
"
;


Потом сие дело я вставляю в нужный мне div:
document.getElementById("my_notes").innerHTML = sText;


_____________
Мой Twitter
Подписывайтесь :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.