Formatting serializeArray
===

this actually is not question. I didn't like how serializeArray format its output and I created function which formats it on more acceptable way.

    (function( $ ){
    $.fn.serializeJSON=function() {
        var json = {}, propname, saveVal;
        $.each($(this).serializeArray(), function(index, n){
            propname = n.name.replace('[]', '');
            if (!json.hasOwnProperty(propname))
            {
                json[propname] = n.value;
            }
            else if( ! (json[propname] instanceof Array) )
            {
                saveVal = json[propname][0];
                json[propname] = new Array(saveVal);
            }
            else
            {
                json[propname].push(n.value);
            }
        });
        return json;
    }; 
    })(jQuery);

After form is created just put somewhere this piece of code:

    $('#form_id').submit(function(e) {
        e.preventDefault();
        e.stopPropagation();
        var data = $(this).serializeJSON();
        console.log(data);
    })

I hope it helps to ones who like how form is posted to PHP.