[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: AJAX удаление строки в реальном времени
RCuPeR
Добрый день знатоки.
Появилась проблема следующего рода:
Имеется таблица с некой информацией.
user posted image
При нажатии на кнопку "Удалить" аяксом отправляется запрос на сервер и данные из таблицы удаляются, тут все понятно.
Но, что бы узнать, точнее проверить, удалилась ли строка или нет нужно перезагрузить страницу, тогда все станет ясно.
Вопрос: как сделать так, что бы строка визуально удалилась через некоторое время (таймаут 1-2 секунды) после действий сервера ?

Надеюсь, все понятно изложил. Спасибо за внимание.



Спустя 5 минут, 18 секунд (3.10.2011 - 13:33) Winston написал(а):
После удаления напиши sleep(2)

Спустя 48 минут, 33 секунды (3.10.2011 - 14:22) RCuPeR написал(а):
Не понял ? На сколько я знаю, sleep(), так сказать "замораживает" скрипт на указаное время.
Но у меня беда не в том. Важно в реальном времени произвести визуальное удаление строки.

Спустя 38 минут, 13 секунд (3.10.2011 - 15:00) Winston написал(а):
Цитата (RCuPeR @ 3.10.2011 - 14:22)
Важно в реальном времени произвести визуальное удаление строки

Значит посылаешь асинхронный запрос в файл php там производится удаление, потом пониже делаешь запрос на выборку из базы и ты уже получишь на одну запись меньше (т.к. одна уже удалена), и потом получаешь в JS записи которые остались.
Например
var = xmlHttp.responseText; // Получаем оставшиеся данные
document.getElementById('id_блока_в_котором_выводятся_записи').innerHTML = var; // Выводим то, что осталось

Ну вот по такому принципу...

Спустя 8 минут, 3 секунды (3.10.2011 - 15:08) caballero написал(а):
Цитата
Но, что бы узнать, точнее проверить, удалилась ли строка или нет нужно перезагрузить страницу


чтобы это узнать достаточно убедится что код оттестирован а БД не возвратила ошибку.
Иных причин почему бы строке не удалится нет.

Цитата
Важно в реальном времени произвести визуальное удаление строки


Термин "реальное время" сюда никаким каком не лепится. Самое простое и разумное - удалять без всякого аякса и не искать проблем на задницу.







Спустя 7 минут, 56 секунд (3.10.2011 - 15:16) RCuPeR написал(а):
Цитата (Winston @ 3.10.2011 - 12:00)
Цитата (RCuPeR @ 3.10.2011 - 14:22)
Важно в реальном времени произвести визуальное удаление строки

Значит посылаешь асинхронный запрос в файл php там производится удаление, потом пониже делаешь запрос на выборку из базы и ты уже получишь на одну запись меньше (т.к. одна уже удалена), и потом получаешь в JS записи которые остались.
Например
var = xmlHttp.responseText; // Получаем оставшиеся данные
document.getElementById('id_блока_в_котором_выводятся_записи').innerHTML = var; // Выводим то, что осталось

Ну вот по такому принципу...

Думал можно как-то по проще, что ли...

Спустя 4 минуты, 38 секунд (3.10.2011 - 15:21) RCuPeR написал(а):
Цитата
Особенно круто отдавать пользователю ошибки из БД если удаление не произошло. Это самый верный способ, точно!


Цитата
  Термин  "реальное  время"  сюда  никаким  каком  не  лепится.  Самое  простое и разумное  -  удалять  без  всякого  аякса и  не  искать  проблем  на  задницу.


А мне кажется, как термин "реальное время" подходит очень даже хорошо.

Есть чем помочь - помогите, не чем - проходите мимо, не нужно тролить, это не красиво.

Спустя 41 минута, 14 секунд (3.10.2011 - 16:02) caballero написал(а):
Цитата
Есть чем помочь - помогите, не чем - проходите мимо, не нужно тролить, это не красиво.


Я тролингом не занимаюсь - уже вышел с этого возраста.
Во первых не надо применять вумные термины где они не лепятся.
Во вторых не надо применять аякс где он тем более не лепится.

Реализовывать бизнес-логику (особенно изменяющую данные) асинхронкой - искать реальные проблеммы себе на задницу.
Это и есть советы основаные на опыте а не на следованиии модным фишкам. Подумайте что будет если юзер пока вы там чтото ворочаете аяксом начнет пинать кнопки ссылки или листать страницы. Стандартная проблемма, для примера, - пользователь листает назад страницу где отработал аякс - браузер с кеша показывает одно а в базе совсем другое

Цитата
Особенно круто отдавать пользователю ошибки из БД если удаление не произошло. Это самый верный способ, точно!


Гораздо круче проигнорировать ошибку(например как любят новички сунуть собаку перед функцией) и сделать перед пользователем вид что все хорошо. Ошибку БД надо корректно обрабатывать, тем более что на оттестированом приложении и нормальном хостинге причин для отказа mysql очень мало. А если ошибка возникла и корректно не отработана логикой сайта - она все равно вылезет перед пользователем на следующем операторе или в виде другого сообщения или вс виде некорректных или отсутствующих данных.




Спустя 55 минут, 14 секунд (3.10.2011 - 16:57) moskitos80 написал(а):
Цитата (RCuPeR @ 3.10.2011 - 12:16)
Цитата (Winston @ 3.10.2011 - 12:00)
Цитата (RCuPeR @ 3.10.2011 - 14:22)
Важно в реальном времени произвести визуальное удаление строки

Значит посылаешь асинхронный запрос в файл php там производится удаление, потом пониже делаешь запрос на выборку из базы и ты уже получишь на одну запись меньше (т.к. одна уже удалена), и потом получаешь в JS записи которые остались.
Например
var = xmlHttp.responseText; // Получаем оставшиеся данные
document.getElementById('id_блока_в_котором_выводятся_записи').innerHTML = var; // Выводим то, что осталось

Ну вот по такому принципу...

Думал можно как-то по проще, что ли...

Посылаешь ajax запрос на сервер, сервер отрабатывает ситуацию и присылает в обратку статус: хорошо/плохо. Если У сервера "все хорошо", тогда методами DOM удаляешь строку из дерева документа. Иначе, если сервер прислал "Всё плохо" - обрабатываешь ошибку - сообщаешь юзеру - мол извиняй неполадочка... попробуй позже.

В обработке ошибки можно послать админу письмо с кодом ошибки.

Спустя 33 минуты, 21 секунда (3.10.2011 - 17:31) RCuPeR написал(а):
caballero, давайте закроем тему, ОК ? Ваше мнение я уже услышал, в решении вопроса мне это, к сожалению, не поможет.

moskitos80, а вот тут мне очень понравилось, наверное так и сделаю. Спасибо wink.gif


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

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