Форум → Программирование → PHP для идиотов → Сортировка списка =)
Сортировка списка =)
-
Вобщем выводится список чего либо.
Порядок вывода каждой строки устанавливается администратором.
Раньше я для каждой строки создавал поле и туда вводились числа, каким будет по счету каждый элемант. И в базе сортировал .
А сейчас хочу сделать чтоб админ кнопками мог передвигать элемент вверх или вниз.
А придумать как это сделать чето не получается =( -
-
7 декабря 2008 г. 13:31, спустя 3 минуты 37 секунд
Прежде чем тему создать я погуглил по запросуdrag and drop jquery
Нашел
http://www.linkexchanger.su/2008/23.html
Подумал то что нужно.
НО, слишком много модулей подключать, это раз, А во вторых не знаю как мне потом получившиюся сортировку в базу сохранить?
И еще, у меня данные табличные. -
7 декабря 2008 г. 13:41, спустя 9 минут 50 секунд
насчет слишком много подключать … вы боитесь трафика?
насчет данные табличные - используйте <li> <span ></span> для вывода в виде таблицы :)
http://docs.jquery.com/UI/Sortable/sortable#examples
ctrl+f + "change Function"
думаю вас это должно натолкнуть на мысль как получить данные после сортировки :)Сапожник без сапог -
7 декабря 2008 г. 13:43, спустя 2 минуты 40 секунд
а вообще у меня вот есть такое жс код :)$("ul[rel='sortable']").sortable(
{
stop:function() {
ids = [];
$(this).children("li").each(function () {ids.push($(this).attr("id"));});
$("#"+$(this).attr("resultto")).val(ids.join("|"));
}
});
а в html выводе я потмо пишу нечто вида<ul rel="sortable" resullto="result">
<li id="12312">asdasd</li>
…
</ul>
<input type="hidden" name="order" id="resultto" />
ну и получаю сортированный список с хендлером на сортировку :)Сапожник без сапог -
-
7 декабря 2008 г. 13:58, спустя 11 минут 3 секунды
насчет слишком много подключать … вы боитесь трафика?
Нет, но на такую мелочь пожключать стока файлов.насчет данные табличные - используйте <li> <span ></span> для вывода в виде таблицы :)
А можно пример?
У меня выводится примерно так<table>
<?php
foreach($this->info_company as $var)
{
?>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<?php
}
?>
</table>http://docs.jquery.com/UI/Sortable/sortable#examples
А вы на русском что нибудь знаете?? Всетаки не в америке живем =)))ctrl+f + "change Function"
Почему то не натолкнуло=( -
-
7 декабря 2008 г. 14:03, спустя 3 минуты 31 секунду
В общем наверно теперь могу вопрос конкретизировать.
Как мне получить и отправить в функцию отсортированный список?<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
Я так понимаю что так$("ul[rel='sortable']").sortable(
{
stop:function() {
ids = [];
$(this).children("li").each(function () {ids.push($(this).attr("id"));});
$("#"+$(this).attr("resultto")).val(ids.join("|"));
}
}); -
7 декабря 2008 г. 14:03, спустя 14 секунд
английский учить и знать надо - не всю жизнь жить вговнероссии. насчет подключать много файлов - я не против подключить много файлов ради того чтобы во всех браузерах мой сайт работал одинаково, а не писал "sorry browser is not IE, please upgrade you browser to ie6 for using this fucking shit site"Сапожник без сапог -
7 декабря 2008 г. 14:04, спустя 30 секунд
$("ul[rel='sortable']").sortable(
{
stop:function() {
ids = [];
$(this).children("li").each(function () {ids.push($(this).attr("id"));});
$("#"+$(this).attr("resultto")).val(ids.join("|"));
}
});Сапожник без сапог -
7 декабря 2008 г. 14:14, спустя 10 минут 52 секунды
английский учить и знать надо - не всю жизнь жить в говне россии
Полностью согласен!!! Я стараюсь, но это сложновато для меня.
Не хоче использовать код который работает, но который не понимаю.
Разжуйте пожалуйста.
1. $("ul[rel='sortable']").sortable это понятно
2. stop:function() тоже все понятно
3. ids = []; это что?
4. $(this).children("li").each понятно
5. ids.push($(this).attr("id")); теперь понятно и ids = []; =)
это мы заносим в массив элементы по порядку??
6. $("#"+$(this).attr("resultto")).val(ids.join("|")); это мы данные в join формируем??
a) "#"+$(this).attr("resultto") непонятно -
7 декабря 2008 г. 14:22, спустя 7 минут 18 секунд
разжовывать где опнятно не стану, а вот остальное)английский учить и знать надо - не всю жизнь жить в говне россии
Полностью согласен!!! Я стараюсь, но это сложновато для меня.
Не хоче использовать код который работает, но который не понимаю.
Разжуйте пожалуйста.
1. $("ul[rel='sortable']").sortable это понятно
2. stop:function() тоже все понятно
3. ids = []; это что?
4. $(this).children("li").each понятно
5. ids.push($(this).attr("id")); теперь понятно и ids = []; =)
это мы заносим в массив элементы по порядку??
6. $("#"+$(this).attr("resultto")).val(ids.join("|")); это мы данные в join формируем??
a) "#"+$(this).attr("resultto") непонятно
ids.join("|") - бъединяем данные в массиве в строку через параметр |
допустим было - 1,2,3,4,5,6,7,8,9 - массив, станет строка
"1|2|3|4|5|6|7|8|9"
$(this).attr("resultto") - получаем значение аттрибута "resultto" элемента this (активный ul).
$("#"+$(this).attr("resultto")) - идем элемент с id = $(this).attr("resultto").
$("#"+$(this).attr("resultto")).val("..") - присваиваем значение айденному элементу по иду.
все просто, только смахивает на перл слегка)Сапожник без сапог
Пожалуйста, авторизуйтесь, чтобы написать комментарий!