Morgen =)
Also folgendes:
ich hab ein formular mit beliebig vielen (anzahl unbekannt) Input feldern die dynamisch erzeugt werden.
Das will ich nun per JS submitten und die rückgabe direkt auf der seite einfügen.
mein lösungsansatz dazu ist:
die felder werden so erzeugt:
Die JSfunction ist von hier:
AJAX Form POST Request - HTML Form POST/Submit with AJAX/Javascript Example/Tutorial
Es tut sich garnichts auf der site leider =(
kommentiere ich meine while schleife aus, dann geht alles wunderbar, bis auf die dynamischen felder natürlich ^^
daher vermute ich mal der fehler liegt da
Also folgendes:
ich hab ein formular mit beliebig vielen (anzahl unbekannt) Input feldern die dynamisch erzeugt werden.
Das will ich nun per JS submitten und die rückgabe direkt auf der seite einfügen.
mein lösungsansatz dazu ist:
Code:
var http_request = false;
function makePOSTRequest(url, parameters) {
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() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
alert(http_request.responseText);
result = http_request.responseText;
document.getElementById('innerdiv').innerHTML = result;
} else {
alert('There was a problem with the request.');
}
}
}
function get(obj) {
var poststr =
"feld1=" + encodeURI( document.getElementById("feldid1").value ) +
"&feld2=" + encodeURI( document.getElementById("feldid2").value );
var i=1;
while(document.getElementById("dynamischesfeld"+i)){
poststr += "&"+i+"_feld=" + encodeURI( document.getElementById("feld"+i).value
);
i=i+1;
}
document.getElementById('outerdiv').style.display = 'block';
document.getElementById('innerdiv').innerHTML = '<IMG SRC="ajax-loader.gif"> Lade...';
makePOSTRequest('send.php', poststr);
}
die felder werden so erzeugt:
PHP:
while($seit=mysql_fetch_array($res)){
$i++;
if($seit['captcha']==0){
echo' <input type="checkbox" name="'.$i.'_feld" value="true" id="dynamischesfeld'.$i.'" /> ';
}
}
Die JSfunction ist von hier:
AJAX Form POST Request - HTML Form POST/Submit with AJAX/Javascript Example/Tutorial
Es tut sich garnichts auf der site leider =(
kommentiere ich meine while schleife aus, dann geht alles wunderbar, bis auf die dynamischen felder natürlich ^^
daher vermute ich mal der fehler liegt da