Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jquery - JSON.stringify, array is empty

i hope somebody can help me, the array value is empty in the post.

$(function start() {

    c_all = new Array('#div { font-color:#ff0000; border:1px solid #00ff00; }', '#div_2 { font-color:#ff0000; }', '.line2 { font-color:#00ffff; }');

    css(c_all);

});


function css(x) {

    values = new Array();

    for (i = 0; i < x.length; i++) {
        c0_selector = '' + x[i].match(/^.*{/) + '';
        c0_selector = c0_selector.replace(/\s*/g, '');
        c0_selector = c0_selector.replace(/{/, '');

        x[i] = x[i].replace(/^.*{/, '');
        x[i] = x[i].replace(/}/, '');

        c0_arr = x[i].split(';');

        values['' + c0_selector + ''] = new Array();

        $('#log').append(''+c0_selector+'<br />');

        for (i2 = 0; i2 < c0_arr.length; i2++)
        {
            values[''+c0_selector+''][i2] = c0_arr[i2].split(':');
            $('#log').append(''+c0_arr[i2]+'<br />');  
        }

    }

    $.ajax({
            type: 'post',
            data: JSON.stringify(values),
            contentType: 'application/json',
            dataType: 'json'
    });


}

working example -> http://www.jsfiddle.net/V9Euk/448/

Thanks in advance! Peter

like image 356
Peter Avatar asked Aug 30 '10 17:08

Peter


1 Answers

Try making values an Object, (like it should be in javascript for named keys).

var values = {};

Also, it is a really good idea to declare your variables with the var keyword, so you're not creating global variables.

Also, no need for '' + c0_selector + '' since you already have a String. Just do c0_selector.

Finished product logs the populated Object. http://www.jsfiddle.net/V9Euk/450/

like image 168
user113716 Avatar answered Oct 19 '22 04:10

user113716