Acácio Santos

RSS

ajax_form_submit

Alguns de vocês já podem ter precisado disso, então estou enviando aqui uma função que criei uns tempos atrás para fazer um form virtual em uma página. A razão de usar isso, é para fazer posts aleatórios em páginas, com um target específico e dinâmico: Você pode construir os campos que vão para o form como quiser.

A entrada do script recebe uma url de ação, um target (_blank, etc.) e um array de dicionários contendo cada um nome e valor dos campos que estariam no form.

A função utiliza jQuery

function virtual_form_submit (acao, target, campos) {
    var nome_form = "#virtual_form_submit";

    // remove o form, caso ja tenha sido usado anteriormente
    $(nome_form).remove();

    // adiciona um form ao dom 
    var form_ajax = $("<form/>").attr("method", "post").attr("id", nome_form)
        .attr("action", acao).attr("action", acao).attr("target", target);

    // adiciona os campos enviados no dicionario
    $.each(campos, function (nome, valor) {
        form_ajax.append($("<input/>").attr("type", "hidden").attr("name", nome).val(valor));
    });

    // append ao body, para poder funcionar
    $("body").append(form_ajax);

    // finalmente, o submit
    $(nome_form).submit();
}