Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2010, 09:44
Новичок на форуме
Отправить личное сообщение для assasin Посмотреть профиль Найти все сообщения от assasin
 
Регистрация: 06.06.2010
Сообщений: 5

Удаление элемента
Здравствуйте форумчане! Пишу небольшой чат для сайта:
В теле страницы у меня есть
<div id="chat_area"></div>


При добавлении сообщения вызывается функция Load(), которая принимает имя и сообщение и делает следующее:
$js = 'var chat = $("#chat_area");'; // получаем указатель на элемент, потом проходимся по базе сообщений, находим новые, загоняем их в массив и формируем код дальше
foreach ( $messages as $value )
   {
        $id = $value['id'];
	$button = str_replace("recordId",$id,"<input type=image src=images/del.png onclick=Delete('recordId') >");
	$js .= 'chat.append("<span>' . $value['name'] . '&raquo; ' . $value['text'].$button.'</span>");'; 
   }
//после передачи обратно клиенту $js, он выполнит ее eval($js)


По щелчку на кнопку рядом с сообщением вызывается обработчик Delete(Id), который говорит серверу, какую запись из базы удалить...
Теперь собственно вопрос: из базы-то я удаляю, а как удалить эту запись со страницы? Нажал на кнопку - на глазах пользователя сообщение исчезло. Заранее спасибо!

Последний раз редактировалось assasin, 06.06.2010 в 09:54.
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2010, 09:50
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

$(node).remove();
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2010, 09:53
Новичок на форуме
Отправить личное сообщение для assasin Посмотреть профиль Найти все сообщения от assasin
 
Регистрация: 06.06.2010
Сообщений: 5

Не подскажите, как это осуществить на моем конкретном примере?
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2010, 09:59
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Какой элемент конкретно надо удалить? Или покажите пример исходного кода (HTML) Вашего чата.
Ответить с цитированием
  #5 (permalink)  
Старый 06.06.2010, 10:18
Новичок на форуме
Отправить личное сообщение для assasin Посмотреть профиль Найти все сообщения от assasin
 
Регистрация: 06.06.2010
Сообщений: 5

На странице, где отображаются сообщения
<div id="chat_area"></div>

Вот смотрите: формирую javascript код на стороне сервера при добавлении нового сообщения
$js = 'var chat = $("#chat_area");'; 
$id = $value['id'];
$button = str_replace("recordId",$id,"<input type=image src=images/del.png onclick=Delete('recordId') >"); // это кнопка, в обработчик которой передается id сообщения в базе данных.
$js .= 'chat.append("<span>' . $value['name'] . '&raquo; ' . $value['text'].$button.'</span>");'; // формируется непосредственно все сообщение: имя, текст, кнопка. 
echo $js; //отправляю

На стороне клиента делаю eval($js);
Когда человек щелкает по кнопке (возле каждого сообщения, как уже понятно, есть такая кнопочка), вызывается обработчик клика Delete(Id), назначенный для каждой кнопки(смотрите выше).
Вот даже его код
function Delete(Id)
{
	$.post("ajax.php",  
	{
        act: "delete",  
        id: Id
    },
     Load );
}

Сервер принимает, смотрит, что $_POST['act'] == "delete" и удаляет с базы данных сообщение по его id. Это все хорошо, но пользователь-то до обновления страницы ничего не заметит(кликнул по кнопке, где-то что-то произошло, видимого визуального эффекта ноль для него). Нужно, чтобы по клику удалились: именно нужное сообщение плюс кнопка(короче, чтобы строка с сообщением исчезла).
Ответить с цитированием
  #6 (permalink)  
Старый 06.06.2010, 10:25
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

$('#chat_area span:last').remove();
Ответить с цитированием
  #7 (permalink)  
Старый 06.06.2010, 10:46
Новичок на форуме
Отправить личное сообщение для assasin Посмотреть профиль Найти все сообщения от assasin
 
Регистрация: 06.06.2010
Сообщений: 5

Задал каждой кнопке уникальный id, который и заносится в element...
Сперва протестировал код
$(element).remove();

Как и ожидалось, удалилась кнопка, по которой был клик...
Потом попробовал
$("#chat_area").remove($(element).parents('span').first());
дабы удалить все сообщение, но такой код вообще никаких действий не производит...

Последний раз редактировалось assasin, 06.06.2010 в 12:46.
Ответить с цитированием
  #8 (permalink)  
Старый 06.06.2010, 14:30
Новичок на форуме
Отправить личное сообщение для assasin Посмотреть профиль Найти все сообщения от assasin
 
Регистрация: 06.06.2010
Сообщений: 5

exec, спасибо большое за помощь! Проблему решил, повесил id на каждый span
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы удаление элемента и вставка на его место другого mycoding Общие вопросы Javascript 1 19.04.2010 22:30
Удаление отдельного элемента с масива Suharik Общие вопросы Javascript 8 06.04.2010 17:11
Центрирование элемента относительно центра другого элемента idrozd jQuery 1 27.01.2010 13:32
удаление DOM элемента и перезагрузка страницы Andrey2005 Общие вопросы Javascript 3 12.10.2009 23:49
удаление Элемента из ХТМЛ Tinvul Events/DOM/Window 19 15.07.2009 13:59