jQuery UI сортируемый сериализовать от детей - PullRequest
1 голос
/ 07 мая 2010

Я хочу отправить массив с путями к изображениям и заголовками в скрипт PHP после того, как я отсортировал изображения. Я могу сделать 'serialize' или 'toArray' в списках, но как получить атрибуты из тега img?

<ul class="gallery">
    <li id="li-1">
        <img src="tn/001.jpg" alt="first caption" />
    </li>
    <li mycaption="some caption" id="li-2">
        <img src="tn/002.jpg" alt="second caption with éèçà international chars" />
    </li>
</ul>

$(".gallery").sortable({
    update : function() {
        serial = $('.gallery').sortable('serialize');
        alert(serial);
        /* $.ajax({
            url: "sort.php",
            type: "post",
            data: serial,
            error: function() {alert("theres an error with AJAX");}
        }); */
    }
});

1 Ответ

1 голос
/ 07 мая 2010

Итак, вот как я мог бы сериализовать это в объект с двумя членами, src_arr и caption_arr:

var getPaths = function() {
    var imgPaths = { 'src_arr': [], 'caption_arr': []};
    $('.gallery img').each(function(){
        imgPaths.src_arr.push($(this).attr('src'));
        imgPaths.caption_arr.push($(this).attr('alt'));
    });
    return imgPaths;
};

Так что я бы сделал это с вашим кодом:

<code>$.ajax({
    url: "sort.php",
    type: "POST",
    dataType: 'html',
    data: getPaths(),
    success: function(data, textStatus, XMLHttpRequest) {
        // you need to do something in here
        $('#debug').html('<pre>' + data + '
'); }, ошибка: функция () { alert ("есть ошибка с AJAX"); } });

Исходные данные как print_r() из sort.php выглядят так:

Array
(
    [src] => Array
        (
            [0] => tn/001.jpg
            [1] => tn/002.jpg
        )

    [caption] => Array
        (
            [0] => first caption
            [1] => second caption with éèçà international chars
        )

)
...