Dynamisches Formular-Verhalten

Habe es nun umgestellt.

Code:
<script type="text/javascript">
function addStatistic(Index){
	// Anzahl bisheriger Spielstatistiken
	var index = document.getElementById("add_matchreport_count_statistics").value;
    
    // Zähler um 1 erhöhen
   	var indexNext = parseInt(index) + 1;	
			
	// Zähler an Formular zurückgeben
   	document.getElementById("add_matchreport_count_statistics").setAttribute("value", indexNext);  
   
    // Neue Tabellenzeile einfügen
  	var TR = document.getElementById("add_matchreport_table").insertRow(indexNext);

	// Neue Tabellenspalte mit colspan = 2 einfügen
  	var TD = document.createElement("td");
  	TD.setAttribute("colspan","2");

	// XMLHttpRequest erzeugen
	var http = null;
	http = new XMLHttpRequest();
	
	if (http != null) {
		http.open("GET", "action_admin_matches_statistic.inc.php?id="+indexNext, true);
		http.onreadystatechange = ausgabe;
		http.send(null);
	}
		
	// Erzeugtes Formular aufrufen
	function ausgabe(){
		if (http.readyState == 4) {
			document.getElementById('add_matchreport_statistic'+indexNext).innerHTML = http.responseText;
   		}	
	} 	

  	// Neuen DIV-Container einfügen
  	var TDDIV = document.createElement('div');
  	TDDIV.id = 'add_matchreport_statistic'+indexNext;
  	TDDIV.innerHTML = http.responseText;
 	
 	// Child-Knoten der Reihe nach einfügen
	TD.appendChild(TDDIV);
	TR.appendChild(TD);			
}
</script>

Die Konsole im Firebug gibt keinen Fehler mehr aus.
Im IE funktioniert es aber weiter nicht.
 
Hi,

Dann musst Du schauen, was der IE für eine Fehlermeldung liefert (Du musst den so einstellen, dass das auch angezeigt wird).


GottiRhg hat gesagt.:
Habe es nun umgestellt.

Du solltest das nicht verschieben, Du solltest diese Zeile einfach rausnehmen. Die ergibt doch gar keinen Sinn.
Warum machst Du das Ganze eigentlich nicht in der Funktion ausgabe()? Sprich, wenn der Request abgeschlossen ist. Sonst kann es jetzt theoretisch passieren, dass der Request fertig ist und ausgabe() aufgerufen wird, bevor das Element in den Dokumentbaum eingehängt wurde.

LG
 
Richtig,
hast ja recht :)

Habe es nun hoffentlich richtig:

Code:
<script type="text/javascript">
function addStatistic(Index){
	// Anzahl bisheriger Spielstatistiken
	var index = document.getElementById("add_matchreport_count_statistics").value;
    
    // Zähler um 1 erhöhen
   	var indexNext = parseInt(index) + 1;	
			
	// XMLHttpRequest erzeugen
	var http = null;
	http = new XMLHttpRequest();
	
	if (http != null) {
		http.open("GET", "action_admin_matches_statistic.inc.php?id="+indexNext, true);
		http.onreadystatechange = ausgabe;
		http.send(null);
	}
	
	// Erzeugtes Formular aufrufen
	function ausgabe(){
		if (http.readyState == 4) {	
			// Zähler an Formular zurückgeben
			document.getElementById("add_matchreport_count_statistics").setAttribute("value", indexNext);  
	   
	 		// Neue Tabellenzeile einfügen
			var TR = document.getElementById("add_matchreport_table").insertRow(indexNext);
	
			// Neue Tabellenspalte mit colspan = 2 einfügen
			var TD = document.createElement("td");
			TD.setAttribute("colspan","2");			
				
			// Neuen DIV-Container einfügen
			var TDDIV = document.createElement('div');
			TDDIV.id = 'add_matchreport_statistic'+indexNext;
			//TDDIV.innerHTML = http.responseText;
	 	
			// Child-Knoten der Reihe nach einfügen
			TD.appendChild(TDDIV);
			TR.appendChild(TD);	
			
			document.getElementById('add_matchreport_statistic'+indexNext).innerHTML = http.responseText;
		}	
	} 					
}
</script>

Funktioniert im IE und Firefox.
Nun bleibt mir nur noch das Problem, dass er im IE das colspan=2 nicht richtig macht.
 
Zurück