JQuery читать строку таблицы - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть таблица, и мне нужно прочитать строку и получить все бывшие. е. Я написал что-то вроде этого, но он дает мне один и тот же массив дважды ['id','test'].

Как мне это сделать? Поскольку я должен обработать каждый th в классе php, чтобы построить таблицу.

<script type="text/javascript">
    $(document).ready(function(){
        var table = $("table");
        var headerCells = table.find("thead th");
        var headers = [];

        //get header cells
        headerCells.each(function(i) {
            i = $(this).text();
            headers[headers.length] = i;
        });

        //convert array to json
        var jsonArray = JSON.stringify(headers);

        //prepare POST data
        var dataToPost = { 'jsonArray':jsonArray };

        console.log(headers);

        $.ajax({ url: '/js/call.php',
            data: {data: dataToPost},
            type: 'get',
            success: function(output) {
                //output = eval( '(' + output + ')' );
                alert (output);
            }
        });
    });    //end jQ
</script>

Ответы [ 3 ]

1 голос
/ 24 ноября 2011

Вы делаете что-то странное, когда создаете массив

   //get header cells
    headerCells.each(function(i) {
        i = $(this).text();
        headers[headers.length] = i;
    });

я бы сделал:

   //get header cells
    headerCells.each(function(i) {
        i = $(this).text();
        headers.push(i);
    });
1 голос
/ 24 ноября 2011

вам, вероятно, нужно изменить это:

headerCells.each(function(i) {
    i = $(this).text();
    headers[headers.length] = i;
});

на

headerCells.each(function(idx, elm) {
    var text = $(elm).text();
    headers[idx] = text;
});
0 голосов
/ 24 ноября 2011

Проблема в запросе ajax

//prepare POST data
var dataToPost = { 'jsonArray':jsonArray };

console.log(headers);
$.ajax({ url: '/js/call.php',
        data: {data: dataToPost},
        type: 'get',
        success: function(output) {
            alert(output);
        }
    });

dataToPost - объект, но ожидается строка, решение:

//prepare POST data
var dataToPost = { 'jsonArray':jsonArray };

console.log(headers);
$.ajax({ url: '/js/call.php',
        data: dataToPost,
        type: 'get',
        success: function(output) {
            alert(output);
        }
    });

См. пример

...