Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пользовательские закладки (https://javascript.ru/forum/misc/38981-polzovatelskie-zakladki.html)

Millerlight 11.06.2013 18:23

Пользовательские закладки
 
Привет! Кто может сделать скрипт добавления пользовательских закладок без перезагрузки страницы с анимацией loading

Есть две таблицы.

1) Основная таблица с записями. Каждая статья с уникальным ID (ob_id)

2) Таблица пользовательских закладок
book_id - уникальный ID закладки
book_users_id - уникальный ID пользователя берется из сессии
book_ob_id - уникальный ID статьи


На странице подробного просмотра статьи будет кнопка с надписью -Добавить в закладки- по нажатию которой исчезает и появляется анимация loading пока ID статьи записывается в БД и затем появляется кнопка -Удалить из закладок- и наоборот.

Все должно быть без перезагрузки страницы.

Кто возьмется? Заплачу 200 руб.

ruslan_mart 11.06.2013 18:27

Millerlight, ajax :) jQuery есть то?

Millerlight 11.06.2013 18:31

Все равно с помощью чего это будет реализовано :)

ruslan_mart 11.06.2013 18:47

Примерно так:

<img alt="" id="loading" src="загрузка.gif" style="display:none" />
<input id="delBlank" type="button" value="Удалить из закладок" style="display:none" />
<input id="addBlank" type="button" value="Добавить в закладки" />

$('#addBlank').click(function()
{
   $('#loading').fadeIn(300);
   $.post('add_blank_ajax.php', {id: 'id статьи'}, function()
   {
      $('#loading, #addBlank').fadeOut(300);
      $('#delBlank').fadeIn(300);
   });
});


Ну и в add_blank_ajax.php обрабатывайте $_POST['id'] и записывайте в БД.

Millerlight 11.06.2013 19:32

А как же обратный эффект? И анимация загрузки появляется вместе с кнопкой удалить.

ruslan_mart 12.06.2013 04:19

<img alt="" id="loading" src="загрузка.gif" style="display:none" />
<input id="delBlank" type="button" value="Удалить из закладок" style="display:none" />
<input id="addBlank" type="button" value="Добавить в закладки" />

$('#addBlank').click(function()
{
   $('#loading, #delBlank').fadeIn(300);
   $.post('add_blank_ajax.php', {id: 'id статьи', type: 'add'}, function()
   {
      $('#loading, #addBlank').fadeOut(300);
   });
});

$('#delBlank').click(function()
{
   $('#loading, #addBlank').fadeIn(300);
   $.post('add_blank_ajax.php', {id: 'id статьи', type: 'del'}, function()
   {
      $('#loading, #delBlank').fadeOut(300);
   });
});


Ну и на сервере:
$id = $_POST['id'];
$type = $_POST['type'];

if($id)
{
   $connect = new mysqli('сервер', 'БД, 'пароль');
   $connect->select_db('название таблицы');
   if($type == 'add') $connect->query('скрипт добавления закладки');
   else $connect->query('DELETE FROM........');
   $connect->close();
}


Ну и для безопасности, записывать данные через $connect->real_escape_string()

Millerlight 12.06.2013 09:26

Ок. Подогнали что нам нужно в твой пример. Все нормально. Наш заказчик доволен. Давай номер киви.


Часовой пояс GMT +3, время: 04:43.