Оставить комментарий












Dmitrii ‘Mamut’ Dimandt

Можно сделать на основе чекбоксов. Имена чекбоксам задавать типа checkbox[1], checkbox[2] и так далее. При смене позиции просто заново переназначить им имена, что-то типа


var i = 1;

$(‘input .sortable_checkboxes’).each( function(){ $(this).attr(‘name’, ‘checkbox[’ + i + ‘]’); i++; }
);

На стороне сервера, если известно кол-во элементов, можно так (PHP):


for($i = 1; $i < $no_of_elements; $i++)
{
    echo $_REQUEST['checkbox'][i];
}

Если кол-во элементов неизвестно, то можно


foreach($_REQUEST['checkbox'] as $element)
{
    echo $element;
}

Если $_REQUEST[‘checkbox’] вдруг неотсортировано по возрастанию (что вряд ли), можно через array_sort вернуть его в чувство :)

Это самое первое, что приходит в голову :)

На самом деле я с sotables не работал, но общая идея примерно такая :)


06-12-2007 18:06:10permalink

spiritzzz

А как вы мне посоветуете решить след. задачу:
Есть список элементов, (

  • ). Нужно его отсортировать меняя их местами, а потом отсортированный вид куда отправить. Хочу попробовать таким образом сделать для админки порядок следования эллементов.


    06-12-2007 16:51:51permalink
  • Dmitrii ‘Mamut’ Dimandt

    jQuery UI я как-то пощупал, оно меня не впечатлило, и я его забросил :)


    06-12-2007 13:47:36permalink

    spiritzzz

    Спасибо большое, ОПЯТЬ вы меня выручили, даже уже не знаю как Вас благодарить :)))
    А вы с JQ UI не работали?


    05-12-2007 21:30:52permalink

    Dmitrii ‘Mamut’ Dimandt

    1) хм.... сложно сказать :) Можно проверять, что файл был вызван через Ajax:

    if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')

    и инклюдить соответственно

    2) в jQuery 1.2 есть crossdomain Ajax


    26-11-2007 11:01:54permalink

    spiritzzz

    Здравствуйте еще раз :) Пришел поблагодарить вас за помощь, ОЧЕНЬ помогли ) Столкнулся с маасенькой проблемкой недавно, по инету рыскал – не нашел решения. Точнее две проблемки:
    1) у меня есть файл index.php. У меня два варианта работы сайта, с js и без. Если без js – то по запросу index.php?page=test инклудится файлик pages/test.php.
    в этом файлике pages/test.php инклудится другой файлик путем допустим include(rrr.php), причем файлик rrr.php находится там же, где и index.php. Если я загружаю в index.php файл pages/test.php при помощи jq, то путь для файла rrr.php становится уже другим, на каталог выше. Получается что файл pages/test.php считает себя корнем :) оно то и верно, но как с этим бороться попроще? :)

    2) как я понял по причине безопасности ajax не подгружает НЕлокальные файлы и ссылки... как это можно обойти? :)


    25-11-2007 02:41:16permalink

    Dmitrii ‘Mamut’ Dimandt

    Вау! Какие люди!

    Я программистом в Кишиневе работаю на данный момент. А помню я весь класс на коне 9-го класса :) Как же вас забыть :)))

    Пишите посылки: dmitriid [] gmail.com

    :)


    22-11-2007 14:04:20permalink

    екатерина

    Дима, привет! Это Катя Шурманова, нашла ссылку на твой с кем-то разговор на кишинев. ру. очень рада, что ты меня помнишь! я живу в Сочи, работаю журналистом на портале деловых новостей. меня и мом материалы мошно найти, набрав в яндексе имя и фамилию. вот мой интернет адрес katarish@yandex.ru. очень скучаю по кишиневу, приезжаю каждый год!
    хочется узнать о твоих новостях!


    22-11-2007 13:11:23permalink

    Dmitrii ‘Mamut’ Dimandt

    ай саол же есть же :)


    30-10-2007 14:17:21permalink

    чюхчюх – испанский паравоз

    Байрам, Мамут, Оле Оле


    29-10-2007 16:29:26permalink

    Dmitrii ‘Mamut’ Dimandt

    На этот вопрос сложно ответить внятно :)

    Я с этим сталкивался в Файрфоксе на локальных файлах. Несмотря на то, что в href находится что-то простенькое и коротенькое, из DOM видно, что там лежит полный адрес (видно, например, в Firebug‘е).

    Как это решается – хз :) Можно попробовать использовать split


    24-10-2007 10:47:12permalink

    SpirITzzz

    Спасибо огромное! :)))) и опять новая проблемка ))))))
    Вот такой код

    function index_func(news_main) { news_main.find(“a”).click(function(){

    if ($(this).attr(“id”) "backbt"){ var url = "news.php"; act(url); } else if ($(this).attr("id") “newsbt”){ var url = “news.php” + $(this).attr(“href”); act(url); }
    function act(url) { news_main.hide(‘slow’,function(){ $(this).empty(); $.get(url,{}, function(response){ news_main.append(response).fadeIn(“slow”); index_func(news_main); }); });

    При первом нажатии на ссылку с id newsbt выполняется else if, выполняется нормально, при нажатии на backbt возвращаемся назад, и вот тут идет проблемка: в else if когда я жму на ссылку с id newsb к url прибавляется полный адрес сайта с http:// и тд, хотя ссылка в виде ?news=3 и тд. Почему при первом нажатии ок, а после нажатия на кнопку с айди бэк прибавляется етот дурацкий адрес? :)


    23-10-2007 23:37:28permalink

    Dmitrii ‘Mamut’ Dimandt

    Дело в том, что для загруженых ссылок надо заново вызывать функцию, их обрабатывающую. То есть что-то в таком стиле:

    function updateLinks(container)
    { container.find(‘a’).click( function(){ var url = $(this).attr(‘href’); container.hide( ‘slow’, function(){ container.empty(); $.get( url, {}, function(response) { container.append(response) .fadeIn(‘slow’); updateLinks(container); } ) } ); return false; } );
    }

    $(document).ready( function(){ var id = $(”#test”); updateLinks(id); }
    )


    22-10-2007 10:30:15permalink

    SpirITzzz

    Это опять я :)))) Возник еще один маааленький вопросик. Вот я выложил страницы с проблемой. http://true-studio.com/spiritzzz/test/page1.html

    Суть в том, что есть страница page1.html, в которой есть div с id=test. Потом далее идет кусок вашего кода, который все ссылки нажатые в этом диве грузит в етот же див. Все работает до этого момента: подгружается через get page2.html, которая находится в этом же div с id=test, но уже ссылки из неё не обрабатываются, и ссылка открывается как обычная.

    где я туплю? :))))


    21-10-2007 02:43:18permalink

    SpirITzzz

    Спасибо большое за помощь! :) очень выручили.


    20-10-2007 15:34:18permalink

    Dmitrii ‘Mamut’ Dimandt

    можно использовать callback:

    $('element').hide(
        'slow',
        function(){
            $(this).empty();
        }
    )
    

    ну или в длинном варианте
    $('element').hide(
        'slow',
        function(){
            $(this).html('текст').show('slow')
        }
    )
    


    19-10-2007 10:34:00permalink

    SpirITzzz

    Дополнение:
    Суть в том, что мне нужно что бы див плавно исчез, очистился, в него загрузилось что-то и так же плавно появилось :) Но на практике див начинает плавно исчезать, тут же не успев исчезнуть очищается, в него загружается не что, он до конца исчезает и опять с тем нечто появляется. Получается Эффект “Мегания”.


    18-10-2007 21:12:47permalink

    SpirITzzz

    Спасибо большое за ответ! =)
    Еще созрел один вопрос:
    Делаю вот так:
    my_div.fadeOut(“slow”);
    my_div.empty();

    ну или так my_div.fadeOut(“slow”).empty();

    И получается, что my_div очищается раньше, че окончится действие fadeOut. Как это можно решить?


    18-10-2007 21:09:15permalink

    Dmitrii ‘Mamut’ Dimandt

    > 1)как с кодировками бороться

    Это легко – просто передавать данные только в utf-8 (увы, только в нем)

    > как сделать, что бы в пределах данного DIV все ссылки нажатые в нем подгружались только в нем (без перезагрузки всей страницы

    var my_div = $(‘селектор_дива’);

    my_div.find(‘a’).click( function(){ var url = $(this).attr(‘href’);

    $.get( url, {}, function(response){ my_div.append(response); } ); return false; } );

    > Верно ведь, что картинку загрузки вешать нужно на ajaxSend, а по окончанию убирать на например ajaxSuccess?

    По идее да. Работает (в теории) оно так:

    $(’#indicator’).ajaxLoad( function(){ $(this).show(); }
    ).ajaxSuccess( function(){ $(this).hide(); }
    );

    Но, если честно, оно у меня корректно так и не заработало :)

    > Как мне проверять, загрузились ли все данные в данный див

    Только в функциях, навешиваемых на success аякса. То есть:

    $.get(
        url,
        {},
        function(response){
            some_div.html(response).show();
        }
    );
    

    что аналогично
    $.ajax(
        url: url,
        success: function(response){
            some_div.html(response).show();
        }
    );
    


    18-10-2007 18:13:32permalink

    SpirITzzz

    Ну в частности меня интересует:
    1)как с кодировками бороться :) Ибо если делать так $(”#main”).load(“pages/i/index_main.php”); то кракозябли :)

    2) как сделать, что бы в пределах данного DIV все ссылки нажатые в нем подгружались только в нем (без перезагрузки всей страницы).

    3) Не могу сделать нормальную индикацию загрузки. Верно ведь, что картинку загрузки вешать нужно на ajaxSend, а по окончанию убирать на например ajaxSuccess?

    4) Как мне проверять, загрузились ли все данные в данный див? Что бы выводить его уже с полностью загруженной информацией? Тесно связано с вопросом 3) :)

    В принципе, это все решаемо, но нужно время, которого у меня нет...


    18-10-2007 17:38:20permalink

    Dmitrii ‘Mamut’ Dimandt

    Можно пока здесь :)

    Можно также задать вопрос, например, в Веб-форуме на RSDN.ru Я там довольно быстро отвечаю (под ником Mamut)


    18-10-2007 15:02:44permalink

    SpirITzzz

    Добрый вечер :) Я вот начал изучение ajax, в частности jquery. И у меня есть парочка простых для Вас, но ненможко непонятных для меня вопросов :) С вами можно связаться средствами например ICQ или ещё какого-нибудь мессенджера?


    17-10-2007 21:05:40permalink

    Dmitrii ‘Mamut’ Dimandt

    Не я конечно занимаюсь :) Занимается некто Yariv Sadan Я просто хочу с ним разобраться в плане научиться и использовать в своих проектах :)


    26-08-2007 17:48:01permalink

    ослик иа

    это ты сам, в смысле один, всем этим(ёрлывыб) занимаешься? нормально, первонах, так сказать. молодца, мамут, флаг заслужил и даже барабан или трубу


    26-08-2007 09:43:00permalink

    Dmitrii ‘Mamut’ Dimandt

    У меня руки не доходят галлерею нарисовать :)

    А дойдут они, когда я разберусь с ErlyWeb :)


    25-08-2007 10:08:27permalink