Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Перетаскивать блоки.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Перетаскивать блоки.
Predator
Отправлено: 26 Июня, 2012 - 16:47:39
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 619
Дата рег-ции: Март 2012  
Откуда: Ярославль


Помог: 0 раз(а)

[+][+][+]


Все чаще попадаются на которых пользователь может оформлять свой профиль как ему угодно.
К примеру может перетащить блок из одного угла при этом сохранит и то что он сделал будут видить все пользователи. Как это работает? Как сохраняются данные о месте положения того или иного блока?
 
 Top
eai
Отправлено: 26 Июня, 2012 - 16:53:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Работает на JS данные сохраняются в сессию или кукисы


http://jqueryui.com/demos/draggable/

(Отредактировано автором: 26 Июня, 2012 - 16:55:39)

 
 Top
armancho7777777 Супермодератор
Отправлено: 26 Июня, 2012 - 17:06:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Записывайте в базу.
Создайте таблицу `settings` с нужными полями (типа `name`, `value`) ну и т.д.
Думаю мысль поняли.
А в JS по событию окончания перетаскивания отправляйте аяксом запрос на запись изменений.
Есть отличная библиотека: ui jquery drag and drop.
http://jqueryui[dot]com/demos/draggable/
 
 Top
Predator
Отправлено: 26 Июня, 2012 - 17:18:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 619
Дата рег-ции: Март 2012  
Откуда: Ярославль


Помог: 0 раз(а)

[+][+][+]


Не совсем, к примеру в таблице есть запись.
Но как указать место где блок находился и находится на новом? Как то так...
 
 Top
Zuldek
Отправлено: 27 Июня, 2012 - 09:14:24
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Predator пишет:
Не совсем, к примеру в таблице есть запись.
Но как указать место где блок находился и находится на новом? Как то так...

Например задать блокам на странице уникальные имена/номера. Если блок перемящается, - записывать имя в базу имя блока следом за которым (или внутри которого) он выводится.

(Отредактировано автором: 27 Июня, 2012 - 09:16:47)

 
 Top
armancho7777777 Супермодератор
Отправлено: 27 Июня, 2012 - 11:25:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Predator пишет:
Но как указать место где блок находился и находится на новом? Как то так...

Да Вы что, совсем не хотите думать?
Вам не нужны старые свойства стилей связанные с позиционированием элемента.

Обновляйте значения css top, left, или margin-top, margin-left.
Их храните в поле `value` в виде сериализованного массива.

PHP:
скопировать код в буфер обмена
  1.  
  2. $css_data = array(
  3.             '#id_element' => array(
  4.                               'top' => 230,
  5.                               'left' => 100
  6.             ),
  7.             '#id_element2' => array(
  8.                               'top' => 150,
  9.                               'left' => 320
  10.             )
  11. );
  12.  
  13. // Запись в бд
  14. ...  serialize($css_data)  ...
  15.  
  16.  
  17.  
  18. /////////////////////////////////////////////////////////////////////////////////
  19. //  При получении  /////////////////////////////////////////////////////////////
  20.  
  21. $css_data = array();
  22.  
  23. foreach(unserialize($row['value']) as $id_element => $data_style)
  24. {
  25.       $css_data[$id_element] = '';
  26.  
  27.       foreach($data_style as $name => $val)
  28.       {
  29.            $css_data[$id_element] .= $name.':'.$val.';';
  30.       }
  31. }
  32.  
  33.  


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div id="id_element" style="<?php echo $css_data['id_element'];?>"></div>
  3. <div id="id_element2" style="<?php echo $css_data['id_element2'];?>"></div>
  4.  

(Отредактировано автором: 28 Июня, 2012 - 08:07:25)

 
 Top
Predator
Отправлено: 27 Июня, 2012 - 19:02:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 619
Дата рег-ции: Март 2012  
Откуда: Ярославль


Помог: 0 раз(а)

[+][+][+]


Спс. Понял. Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB