Formular per Ajax laden und absenden usw.

xxxmike

Erfahrenes Mitglied
Hallo,
ich habe hier ein mega Problem. aber bin mir gar nicht sicher ob es so geht wie ich mir das vorstelle:


Folgendes, ein Formular wird per Ajax geladen, alles kein Problem:
So wie folgt: Der Ajax Code

Code:
function load(src, id) {
http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} 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('Das Request Objekt konnte nicht erzeugt werden! Bitte ueberpruefen Sie Ihre JAVA Einstellungen!');
return false;
}

document.getElementById(id).innerHTML = "<center><b>Daten werden geladen ...!</b><br><br><img src='images/pleasewait.gif'></center>";
http_request.onreadystatechange = function(){show(id)}
http_request.open('GET', src, true);
http_request.send(null);
}


function show(id) {
if (http_request.readyState == 4) {

document.getElementById(id).innerHTML = http_request.responseText;

}}


So rufe ich das Formular mehr oder weniger auf:

Code:
<a class="menu-link" href="javascript:load('formular.php', 'inhalt');"><? echo ''.ausfüllen.</a>


Da passt alles, und geht auch super, nur wenn dann das formu

In diesem Div wird das Formular aufgerufen, aber denke das ist nebensächlich

<div id="inhalt"></div>;

So, nun wird das formular.php in diesem Div geladen, da gibt auch keine Probleme.
Nur wenn man das Formular ausfüllt und absenden will, geht das nicht.


Das heißt man klickt auf absenden, dann wird sozusagen der div geschlossen, und man steht wieder vor der ausgangssituation.

wie kann ich das machen, das der div geöffnet bleibt, um die daten des formulares zu verarbeiten.

bin echt dankbar für jeden TIPP
DANKE schon mal
 
Moin,

du müsstest den eigentlichen Submit-Vorgang des Formulares abbrechen und das Formular stattdessen auch über Senden der Daten per AJAX vornehmen.
 
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Senden</title>
<script type="text/javascript">
function senden(){
var vorname = document.getElementById("vorname").value;
var nachname = document.getElementById("nachname").value;

// Hier kommt der Ajax Teil hin // 

}
</script>
</head>

<body>
<input type="text" id="vorname" />
<input type="text" id="nachname" />
<button onclick="senden()">Senden</button>
</body>
</html>
 
Hi Folks,

ich habe leider selbiges Problem. Kann aber uch per getElementById nicht auf die Felder zugreifen.
Erhalte die Fehlermeldung, dass die Felder gar nicht existieren.

Lg

Nicker
 
Das Problem hat sich bei mir erledigt, auch wenn ich nicht verstehe, weshalb ein über link eingebundenes Java-Script die Formularfelder nicht erkennt. Habe nun direkt in der ursprünglichen HTML-Datei eine JavaScript-Funktion geschrieben, die die Felder ausliest und dann an die Ajax-Funktion (ist jene, die über link eingebunden ist) übergibt.

Lg

Nicker
 
Das Problem hat sich bei mir erledigt, auch wenn ich nicht verstehe, weshalb ein über link eingebundenes Java-Script die Formularfelder nicht erkennt.

DAs ist ganz einfach, weil Daten die über JS/AJAX in den DOM geladen werden beim erstmaligen laden der Seite noch nicht existieren. Und da die JS-Funktionen nur beim laden der Seite (onload) existieren werden auch nur Elemente erkannt welche zu diesem Zeitpunkt gerendert waren.
jQuery hat hierfür die "live()" - Funktion zur Verfügung gestellt, mit dieser kann man auch Elemente die er AJAX nachgeladen wurden erkennten und auslesen.
 
Danke für die Erklärung. Aber wie kann ich dann von der lokalen JavaScript Funktion Informationen an die über <link> angesprochenen JavsScript-Funktionen übergeben, dass dürfte dann ja auch nicht funktionieren, oder?
 

Neue Beiträge

Zurück