Отправка данных из нескольких форм

Нужно отправить POST запрос данных с нескольких форм одновременно.
вот скрипт в данный момент, но он почему-то отправляет только первую форму (или у меня проблемы в php-обработчике?)

/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
function sendAll(){
        var forms = document.getElementsByName('newflow-form');
        var form_data ='';
        for (var i = 0; i<forms.length; i++){
            form_data = form_data + $('#'+forms[i].id).serialize();
        }

        $.post('auto',form_data);

1 ответов


Пока ждал здесь ответа, решение нашлось. С помощью serializeArray собираем данные со всех форм и отправляем их с помощью вот этого сприпта, найденного на Stack Overflow (http://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit/133997#133997)

function post_to_url(path, params, method) {
        method = method || "post"; // Set method to post by default if not specified.

        var form = document.createElement("form");
        form.setAttribute("method", method);
        form.setAttribute("action", path);

        for(var key in params) {
            if(params.hasOwnProperty(key)) {
                var hiddenField = document.createElement("input");
                hiddenField.setAttribute("type", "hidden");
                hiddenField.setAttribute("name", key);
                hiddenField.setAttribute("value", params[key]);

                form.appendChild(hiddenField);
            }
        }