Mercurial > hg > chronicle
view themes/blog.steve.org.uk/ajax.js @ 211:80ff039cee1f
Added tag release-2.6 for changeset f9446e440ff1
author | Steve Kemp <steve@steve.org.uk> |
---|---|
date | Mon, 14 Apr 2008 19:19:09 +0100 |
parents | 8b0c547cd015 |
children |
line wrap: on
line source
// -*-mode: C++; style: K&R; c-basic-offset: 4 ; -*- */ // // Simple collection of Javascript for Ajax form submission. // // // Get an XMLHTTPRequest object. // function getXMLHTTPRequest() { req = false; if(window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } return( req ); } // // Submit the comment. // function submitComment() { showProgress(); var xhr = getXMLHTTPRequest(); if(! xhr ) { hideProgress(); return; } xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) { var o = document.getElementById( "output" ); o.innerHTML = xhr.responseText; } else { var o = document.getElementById( "output" ); o.innerHTML = "Failed HTTP code " + xhr.status + " " + xhr.responseText; } hideProgress(); } }; data = 'ajax=1'; data = data + '&id=' + escape(document.forms[0].id.value ); data = data + '&captcha=' + escape( document.forms[0].captcha.value ); data = data + '&id=' + escape(document.forms[0].id.value ); data = data + '&captcha=' + escape( document.forms[0].captcha.value ); data = data + '&name=' + escape( document.forms[0].name.value ); data = data + '&mail=' + escape( document.forms[0].mail.value ); data = data + '&body=' + escape( document.forms[0].body.value ); // // Make the request // xhr.open("POST", "/cgi-bin/comments.cgi", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(data); } // // Show our progress marker. // function showProgress() { var i = document.getElementById( "progress" ); if ( i ) { i.style.display = 'block'; } } // // Hide our progress marker. // function hideProgress() { var i = document.getElementById( "progress" ); if ( i ) { i.style.display = 'none'; } }