Autor Zpráva
Martin Brodecký
Profil
Netušíte, kde mám chybu? Už se s tím modruju dobré 3 hodiny... Jednoduše chci odeslat formulář přes AJAX...

 <script type="text/javascript">
/** Odeslání formuláře přes XMLHttp požadavek
* @param function funkce zajišťující obsluhu při změně stavu požadavku, dostane parametr s XMLHttp objektem
* @param string URL požadavku
* @param object formulář k odeslání
* @param object předané hlavičky ve tvaru { 'hlavička': 'obsah' }
* @return boolean true v případě úspěchu, false jinak
* @copyright Jakub Vrána, http://php.vrana.cz/
*/
function post_xmlhttprequest(state_change, url, form, headers) {
    var elements = form.elements;
    var content = [];
    for (var i=0; i < elements.length; i++) {
        if (elements[i].attributes.name && elements[i].attributes.name.specified && !elements[i].disabled) {
            if (/^(select)$/i.test(elements[i].tagName)) {
                var options = elements[i].options;
                for (var j=0; j < options.length; j++) {
                    if (options[j].selected) {
                        var value = (options[j].attributes.value && options[j].attributes.value.specified ? options[j].value : options[j].text);
                        content.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(value));
                    }
                }
            } else if (!/^(submit|reset|button|file|image)$/i.test(elements[i].type) && (!/^(radio|checkbox)$/i.test(elements[i].type) || elements[i].checked)) {
                content.push(encodeURIComponent(elements[i].name) + '=' + encodeURIComponent(elements[i].value));
            }
        }
    }
    if (!headers) {
        headers = {};
    }
    headers['Content-Type'] = 'application/x-www-form-urlencoded';
    return send_xmlhttprequest(state_change, 'POST', url, content.join('&'), headers);
}
</script>

<script type="text/javascript">


function odeslat(form) {
    document.getElementById('stavform').innerHTML = 'Odesílá se ...';
    return post_xmlhttprequest(function (xmlhttp) {
        if (xmlhttp.readyState == 4) {
            document.getElementById('stavform').innerHTML = 'Odesláno.';
        }
        }
    }, 'nahlasit_neaktualni.php', form);
}
</script>

<span id="stavform"></div>

<form action="" method="post" onsubmit="return !odeslat(this);" name="formneaktualniobsah">
Chamurappi
Profil
Reaguji na Martina Brodeckého:
V uvedeném kódu chybu nevidím.
Nepočítám-li, že nevidím nikde funkci send_xmlhttprequest. Buď sis ji od Jakuba Vrány zapomněl zkopírovat (a problém je v tom), nebo je definovaná v části kódu, kterou jsi sem nedal, a v tom případě prosím o odkaz na živou ukázku.
Martin Brodecký
Profil
Aha :D díky moc..

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: