Hallo,
Mal wieder eine Frage für ein eventuell triviales Problem. Also ich habe eine XML-Datei (vom Dozenten):
Vereinfacht gesagt folgt diese der Struktur:
1 Fragebögen
1.1 Fragebogen
1.1.1 Topics
1.1.1.1 Fragen
1.1.1.1.1 Antwortoptionen
Ich dachte mir nun, weil das ja sehr viel werden kann mit vielen Umfragen, da könnte man etwas in Richtung AJAX draus bauen und habe mich eingelesen. Das klappte am Anfang ganz gut, bei "onload" lädt er die Fragebögen. Die Fragebögen kann man expandieren und sieht dann die Topics. Das klappt auch soweit, aber wenn ich nun die Topics ausklappen will um die Fragen zu sehen wird nichts mehr angezeigt.
Die Antwort wird vom Server aber geliefert, da kommen brav die korrekten DIVs an, die ich dann unter Topic hätte sehen wollen. Nur eingefügt wird da nichts. Hier mal der Editor:
Es funktioniert zweimal, aber kein drittes Mal. Ich bin sehr verwirrt und hoffe jemand von den fähigen Leuten hier sieht da eventuell einen Fehler. Suche ich die Elemente falsch, an die ich es ranhängen will? Das ist die 'id', quasi immer das Teil auf das ich drauf geklickt habe
Falls noch Fragen sind, immer her damit. Würde mich riesig freuen, wenn es funktionieren würde. Schon am ersten Ausklappen hab ich drei Stunden gebastelt, bis es denn endlich mal wollte.
Liebe Grüße,
Felix
P.S.: Ich weiß das das mit innerHTML nicht die elegante Art ist, ich hab es bislang nur noch nicht hinbekommen mit createElement und hinzufügen das Ergebnis zu bekommen was ich möchte. Vielleicht ist es auch gar nicht schlau sich vom Server die fertigen HTML-Schnippsel liefern zu lassen?
Mal wieder eine Frage für ein eventuell triviales Problem. Also ich habe eine XML-Datei (vom Dozenten):
Code:
<?xml version="1.0" encoding="UTF-8"?>
<frageboegen Id="db1" Name="Default" Text="Default Datenbank" Beschreibung="Dies ist die Default Datenbank"><fragebogen Id="fb1" Name="Autocenter Meisterkamp 2010" Text="Kundenbefragung 2010" Einleitung="<p>Sehr geehrter Kunde!</p><p>Wir möchten Ihnen an dieser Stelle für Ihre Treue zu dem Autocenter Meisterkamp danken. Wir hoffen, dass Sie mit unserer Leistung im letzten Jahr zufrieden waren. <p>Damit wir Ihnen auch in Zukunft nur den besten Service bieten können, möchten wir gerne von Ihnen wissen, wie zufrieden Sie mit unseren Leistungen sind. Bitte nehmen Sie sich 5 Minuten Zeit und beantworten den folgenden Fragebogen.</p><p>Wenn Sie die Gewinnspielfrage richtig beantworten, können Sie eines von fünf 'Fit für den Urlaub' - Servicepaketen für Ihr Auto gewinnen.</p><p>Mit freundlichen Grüßen - Ihr Autocenter Meisterkamp</p>" Schluss="<p>Wir danken Ihnen für die Teilnahme an der Befragung!</p><p>Wir werden uns bemühen, Ihren Wünschen und Anregungen zu folgen.</p><br><br><p>Mit freundlichen Grüßen - Ihr Autocenter Meisterkamp</p>" Bild1="1" Bild2="" Css="css/siob2010.css" Beschreibung="Kundenbefragung des Autohauses "Autocenter Meisterkamp", Version 2010"><topic Id="to1" Name="Service/Termine" Text="Bereich Service/Termine" Beschreibung="Fragen zum Themenbereich "Qualität des Service" und "Einhaltung von Terminen"" Erklaerung="Hier wollen wir etwas zum Thema 'Service und Termine' wissen." NaechstesTopic=""><frage Id="fr1" Name="Qualität der Arbeit" Text="Wie zufrieden waren Sie mit der Qualität der Arbeit?" Beschreibung="" Erklaerung="" Typ="1" MatrixItems="" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="1" Bild=""><antwortoption Id="an1" Name="Antwortoption1" Text="sehr unzufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an2" Name="Antwortoption2" Text="unzufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an3" Name="Antwortoption3" Text="zufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an4" Name="Antwortoption4" Text="sehr zufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an5" Name="Antwortoption5" Text="keine Angabe" DynTopic="" Disabled="" Codierung=""/></frage><frage Id="fr2" Name="Termintreue" Text="Wie zuverlässig wurden gemachte Terminzusagen eingehalten?" Beschreibung="" Erklaerung="" Typ="1" MatrixItems="" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="1" Bild=""><antwortoption Id="an6" Name="Antwortoption6" Text="nie" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an7" Name="Antwortoption7" Text="selten" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an8" Name="Antwortoption8" Text="oft" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an9" Name="Antwortoption9" Text="immer" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an10" Name="Antwortoption10" Text="keine Angabe" DynTopic="" Disabled="" Codierung=""/></frage><frage Id="fr3" Name="Reparaturzeiten" Text="Wie zufrieden waren Sie mit der Reparaturzeit?" Beschreibung="" Erklaerung="" Typ="1" MatrixItems="" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="1" Bild=""><antwortoption Id="an11" Name="Antwortoption11" Text="sehr unzufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an12" Name="Antwortoption12" Text="unzufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an13" Name="Antwortoption13" Text="zufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an14" Name="Antwortoption14" Text="sehr zufrieden" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an15" Name="Antwortoption15" Text="keine Angabe" DynTopic="" Disabled="" Codierung=""/></frage></topic><topic Id="to2" Name="Mitarbeiter" Text="Bereich Mitarbeiter" Erklaerung="<p>Hier wollen wir etwas zum Thema 'Mitarbeiter' wissen.</p>" NaechstesTopic="" Beschreibung="Fragen zum Themenbereich "Mitarbeiter""><frage Id="fr4" Name="Freundlichkeit Mitarbeiter" Text="Wie freundlich waren unsere Mitarbeiter ..." Beschreibung="" Erklaerung="" Typ="6" MatrixItems="... in der Telefonzentrale?//... im Verkauf?//... in der Werkstatt?" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="" Bild=""><antwortoption Id="an16" Name="Antwortoption16" Text="sehr unfreundlich" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an17" Name="Antwortoption17" Text="unfreundlich" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an18" Name="Antwortoption18" Text="freundlich" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an19" Name="Antwortoption19" Text="sehr freundlich" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an20" Name="Antwortoption20" Text="keine Angabe" DynTopic="" Disabled="" Codierung=""/></frage></topic><topic Id="to3" Name="Pläne des Kunden 1" Text="Ihre Pläne" Beschreibung="Fragen zu Plänen des Kunden, Teil 1" Erklaerung="<p>Hier wollen wir etwas zu Ihren Plänen wissen.</p>" NaechstesTopic=""><frage Id="fr5" Name="Zeitpunkt nächster Fahrzeugkauf" Text="Wann planen Sie den Kauf eines Neu- oder Gebrauchtwagens?" Beschreibung="" Erklaerung="" Typ="1" MatrixItems="" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="1" Bild=""><antwortoption Id="an21" Name="Antwortoption26" Text="1-3 Monate" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an22" Name="Antwortoption27" Text="3-12 Monate" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an23" Name="Antwortoption28" Text="12-24 Monate" DynTopic="to6" Disabled="" Codierung=""/><antwortoption Id="an24" Name="Antwortoption29" Text="gar nicht" DynTopic="to6" Disabled="" Codierung=""/><antwortoption Id="an25" Name="Antwortoption30" Text="keine Angabe" DynTopic="to6" Disabled="" Codierung=""/></frage></topic><topic Id="to4" Name="Pläne des Kunden 2" Text="Ihre Pläne" Beschreibung="Fragen zu Plänen des Kunden, Teil 2" Erklaerung="<p>Hier wollen wir etwas zu Ihren Plänen wissen.</p>" NaechstesTopic="to6"><frage Id="fr6" Name="Marke nächstes Fahrzeug" Text="Wird Ihr nächster PKW wieder ein XYZ sein?" Beschreibung="" Erklaerung="" Typ="1" MatrixItems="" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="" Bild=""><antwortoption Id="an26" Name="Antwortoption31" Text="ja" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an27" Name="Antwortoption32" Text="nein" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an28" Name="Antwortoption33" Text="weiß nicht" DynTopic="" Disabled="" Codierung=""/></frage><frage Id="fr7" Name="Ausstattung nächstes Fahrzeug" Text="Welche Extras soll ihr neuer PKW haben? (Mehrfachantwort möglich!)" Beschreibung="" Erklaerung="" Typ="2" MatrixItems="" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="" Bild=""><antwortoption Id="an29" Name="Antwortoption34" Text="Navigationssystem" DynTopic="to5" Disabled="" Codierung=""/><antwortoption Id="an30" Name="Antwortoption35" Text="Klimaautomatik" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an31" Name="Antwortoption36" Text="Elektrische Sitze" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an32" Name="Antwortoption37" Text="Seitenairbags" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an33" Name="Antwortoption38" Text="CD-Wechsler" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an34" Name="Antwortoption39" Text="DVD-Player" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an35" Name="Antwortoption40" Text="ESP-System" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an36" Name="Antwortoption41" Text="Xenon-Scheinwerfer" DynTopic="" Disabled="" Codierung=""/></frage></topic><topic Id="to5" Name="Pläne des Kunden 3" Text="Ihre Pläne" Beschreibung="Fragen zu Plänen des Kunden, Teil 3" Erklaerung="<p>Hier wollen wir etwas zu Ihren Plänen wissen.</p>" NaechstesTopic=""><frage Id="fr8" Name="Ausgabereitschaft Navi" Text="Wie viel &euro; wäre Ihnen ein Navigationssystem in Ihrem neuen PKW wert?" Beschreibung="" Erklaerung="" Typ="4" MatrixItems="" Horizontal="" Laenge="5" MaxLaenge="5" Hoehe="" TextVorEingabe="" TextNachEingabe="&euro;" Vorgabe="" Format="^[0-9]{0,5}$" FormatText="Bitte geben Sie eine Zahl ein!" Nichtleer="1" Bild=""/></topic><topic Id="to6" Name="Soziodemographie" Text="Persönliche Angaben" Beschreibung="Soziodemographische Angaben soweit im Zusammenhang mit dem Fragebogen interessant." Erklaerung="<p>Bitte machen Sie uns ein paar Angaben zu Ihrer Person.</p>" NaechstesTopic=""><frage Id="fr9" Name="Haushaltsgröße" Text="Wie viele erwachsene Personen leben in Ihrem Haushalt?" Beschreibung="" Erklaerung="" Typ="4" MatrixItems="" Horizontal="" Laenge="2" MaxLaenge="2" Hoehe="" TextVorEingabe="" TextNachEingabe="Personen (Sie eingeschlossen)" Vorgabe="" Format="^[0-9]{1,2}$" FormatText="Bitte Personenzahl als ein- oder zweistellige Zahl eingeben!" Nichtleer="1" Bild=""/><frage Id="fr10" Name="Geburtsjahr" Text="Ihr Geburtsjahr?" Beschreibung="" Erklaerung="" Typ="4" MatrixItems="" Horizontal="" Laenge="4" MaxLaenge="4" Hoehe="" TextVorEingabe="" TextNachEingabe="(Angabe bitte vierstellig)" Vorgabe="19" Format="^[0-9]{4,4}$" FormatText="Geburtsjahr bitte als vierstellige Zahl angeben!" Nichtleer="1" Bild=""/></topic><topic Id="to7" Name="Gewinnspiel" Text="Das Gewinnspiel" Beschreibung="Gewinnspiel mit einer bewusst einfachen Frage" Erklaerung="<p>Um am Gewinnspiel teilzunehmen, beantworten Sie bitte die folgende Fragen.</p>" NaechstesTopic=""><frage Id="fr11" Name="Gewinnspielfrage" Text="Wie viele Filialen hat das Autocenter Meisterkamp?" Beschreibung="" Erklaerung="" Typ="1" MatrixItems="" Horizontal="" Laenge="" MaxLaenge="" Hoehe="" TextVorEingabe="" TextNachEingabe="" Vorgabe="" Format="" FormatText="" Nichtleer="" Bild=""><antwortoption Id="an37" Name="Antwortoption42" Text="2 Filialen" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an38" Name="Antwortoption43" Text="10 Filialen" DynTopic="" Disabled="" Codierung=""/><antwortoption Id="an39" Name="Antwortoption44" Text="123 Filialen" DynTopic="" Disabled="" Codierung=""/></frage></topic><topic Id="to8" Name="Feedback" Text="Ihre Meinung" Beschreibung="Feedbackmöglichkeit für den Befragten." Erklaerung="<p>Wenn Sie uns noch etwas mitzuteilen haben, können Sie dies hier tun.</p>" NaechstesTopic=""><frage Id="fr12" Name="Feedback" Text="Wenn Sie weitere Wünsche oder Anregungen haben, können Sie diese hier aufführen." Beschreibung="" Erklaerung="" Typ="5" MatrixItems="" Horizontal="" Laenge="50" MaxLaenge="" Hoehe="10" TextVorEingabe="" TextNachEingabe="" Vorgabe="Ihr Kommentar ..." Format="" FormatText="" Nichtleer="" Bild=""/></topic></fragebogen></frageboegen>
Vereinfacht gesagt folgt diese der Struktur:
1 Fragebögen
1.1 Fragebogen
1.1.1 Topics
1.1.1.1 Fragen
1.1.1.1.1 Antwortoptionen
Ich dachte mir nun, weil das ja sehr viel werden kann mit vielen Umfragen, da könnte man etwas in Richtung AJAX draus bauen und habe mich eingelesen. Das klappte am Anfang ganz gut, bei "onload" lädt er die Fragebögen. Die Fragebögen kann man expandieren und sieht dann die Topics. Das klappt auch soweit, aber wenn ich nun die Topics ausklappen will um die Fragen zu sehen wird nichts mehr angezeigt.
Die Antwort wird vom Server aber geliefert, da kommen brav die korrekten DIVs an, die ich dann unter Topic hätte sehen wollen. Nur eingefügt wird da nichts. Hier mal der Editor:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Fragebogen Editor</title>
<script type="text/javascript" src='javascript/prototype.js'>
</script>
<link rel="stylesheet" type="text/css" href="css/questionnaire.css">
<link rel="stylesheet" type="text/css" href="css/topic.css">
<link rel="stylesheet" type="text/css" href="css/questions.css">
</head>
<body onload=loadQuestionaries()>
<h2>Fragebogen Editor</h2>
<input type="button" id="addQuestionarie" value="Neuen Fragebogen erstellen" onclick="addQuestionnaire()">
<div id="content">
</div>
</body>
<script type='text/javascript'>
var content = document.getElementById('content');
function loadQuestionaries(){
new Ajax.Request('anfrageFrageboegen.php', {
method: 'post',
onSuccess: function(transport){
content.innerHTML = transport.responseText;
},
onFailure: function(){
alert('Es ist ein Fehler aufgetreten.')
}
});
}
function addQuestionnaire(){
alert('Neuen Fragebogen hinzutun');
}
function addTopic(id){
alert('Neues Topic hinzutun');
}
function addQuestion(id){
alert('Neue Frage erstellen');
}
function addQuestionOption(){
alert('Neue Antwortoption hinzufügen');
}
function expandQuestionnaire(id){
new Ajax.Request('anfrageTopics.php?id=' + id, {
method: 'post',
onSuccess: function(transport){
var element = document.getElementById(id);
element.innerHTML = element.innerHTML + transport.responseText;
},
onFailure: function(){
alert('Es ist ein Fehler aufgetreten.')
}
});
}
function expandTopic(id) {
new Ajax.Request('anfrageQuestions.php?id=' + id, {
method: 'post',
onSuccess: function(transport2){
var element2 = document.getElementById(id);
element2.innerHTML = element2.innerHTML + transport2.responseText;
},
onFailure: function(){
alert('Es ist ein Fehler aufgetreten.')
}
});
}
</script>
</html>
Es funktioniert zweimal, aber kein drittes Mal. Ich bin sehr verwirrt und hoffe jemand von den fähigen Leuten hier sieht da eventuell einen Fehler. Suche ich die Elemente falsch, an die ich es ranhängen will? Das ist die 'id', quasi immer das Teil auf das ich drauf geklickt habe
Falls noch Fragen sind, immer her damit. Würde mich riesig freuen, wenn es funktionieren würde. Schon am ersten Ausklappen hab ich drei Stunden gebastelt, bis es denn endlich mal wollte.
Liebe Grüße,
Felix
P.S.: Ich weiß das das mit innerHTML nicht die elegante Art ist, ich hab es bislang nur noch nicht hinbekommen mit createElement und hinzufügen das Ergebnis zu bekommen was ich möchte. Vielleicht ist es auch gar nicht schlau sich vom Server die fertigen HTML-Schnippsel liefern zu lassen?