ajax script til postdata?
jeg har følgende ajax script, som henter data gennem innerhtml. Den kan hente alle mulige html filer ind og det hele virker fint. Jeg ville dog gerne at jeg kunne bruge scriptet til at poste data med, da jeg kun har fundet et middelmådigt script til dette formål.Mit spørgsmål er så, er der nogen der kan hjælpe mig med at udvide scriptet således at det kan tage posts fra formularer og sende således at jeg kan opdatere min database med det? jeg giver gerne flere point hvis nogen har en god løsning!
scriptet er her.:
http://90.185.20.172/ajax/
det består af 2 js filer, ajax og ajax-dynamic-content.
jeg har indtil nu benyttet mig af følgende til at poste med.:
// JavaScript Document
var divID = false;
var http_request = false;
function makePOSTRequest(url, parameters, div) {
divID = div;
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
function alertContents() {
var vente_tekst = "<p style='text-align: center; margin-left: -5px;'><br/><br/><img src='gfx/loading_small.gif' style='border: none;'/>";
vente_tekst += " <br />Henter data!<br /><br /><br /><br /><br /><br /><br /><br /><br /></p>"
document.getElementById(divID).innerHTML=vente_tekst;
if (http_request.readyState == 4) {
if (http_request.status == 200) {
//alert(http_request.responseText);
result = http_request.responseText;
document.getElementById(divID).innerHTML = result;
} else {
alert('There was a problem with the request.');
}
}
}
og så ved min form.:
<script type="text/javascript" language="javascript">
function get(obj) {
var poststr = "author=" + encodeURIComponent( document.getElementById("author").value ) +
"&login_coach=" + encodeURIComponent( document.getElementById("login_coach").value ) +
"&login_web=" + encodeURIComponent( document.getElementById("login_web").value ) +
"&text=" + encodeURIComponent( document.getElementById("text").value );
makePOSTRequest('includes/information_form.php', poststr, 'informationdiv');
}
</script>
Jeg synes dog det er en besværlig løsning, og når jeg poster af denne vej, kan jeg ikke poste én gang til på siden med tinyMCE, da det kun er det første script der kan finde ud af at hente tinyMCE ind...
Er der derfor nogen der kan hjælpe mig med at lave det første script således at det kan tage postdata?
Og til Olebole : jeg ved godt du hader innerHTML, men medmindre du kan komme med en løsning i dit famøse DOM eller JSON, så frabeder jeg mig dine kommentarer omkring innerHTML ;-)
På forhånd tak!
