Quelltext ändert sich nicht nach DIV-Manipulation

Cappaja

Erfahrenes Mitglied
Hallo,

ich habe folgenden Code:
HTML:
<a onclick="new Ajax.Updater($('none'), 'next.php')">Edit</a>
<div id="none">alter Text</div>

analog diesen Code:
HTML:
document.getElementById('none').innerHTML = "neuer Text";

Beides funktioniert auch, jedoch steht im Quelltext nach wie vor der alte Text drin. Da ich auch auf eine geänderte DIV-ID zugreifen möchte, würde ich gerne wissen wo das Problem liegt. Jemand eine Ahnung?

Grüße Cappaja
 
Der Quelltext ist das, was vom Server, der Quelle, kommt. Wenn du z.B. im Firefox auf "Quelltext anzeigen" gehst, wird nochmal beim Server angefragt.

Wenn du sagst "beides funktioniert", dann ist doch alles in Butter.
 
Naja aber als User sehe ich zunächst einen Text in einem DIV, erst wenn ich den Edit-Link aktiviere sende ich einen HTTPRequest an den Server der mir in einer Response die Daten zurückliefert und den Text innerhalb des DIVs aktualisiert. Also muss ich doch zwangsweise den neuen Text auch im Quelltext sehen können oder was verstehe ich da falsch!?

Mein eigentliches Problem liegt nämlich darin die ID des DIV-Tags zu ändern sobald ich Edit betätige. Dann wird der DIV-Tag in eine TinyMCE Editor Oberfläche überführt. Das funktioniert doch nur wenn mein CSS-File im Quelltext auch die aktualisierte ID vorfindet. Mittels PHP funktioniert es doch auch, wenn ich den Event mit isset() abfange und einen entsprechenden ID-String zurückliefere, dann ist mein Quelltext auch aktualisiert, wo liegt das Problem bei AJAX? Da habe ich doch ebenfalls eine serverseitige Logik integriert...
 
Dann habe ich dein Problem falsch verstanden. Was ist in deinem Fall die $-Funktion?

Edit: Wo wir gerade dabei sind, was ist bzw. macht "Ajax.Updater"?
 
Hi,

ich gehe davon aus, dass du Prototype verwendest. In diesem Fall könntest du auf die callback-Funktion onComplete des Ajax-Objektes zurückgreifen und dort das DIV nach abgeschlossenem Request in den TinyMCE überführen und die ID ändern.

Ciao
Quaese
 
@CPoly wie Quase schon richtig bemerkt hat, ich benutze das Framework Prototype für Javascript. Mittels $('id').innerHTML erspare ich mir den längeren Zugriff auf eine ID: document.getElementById('id.').innerHTML. Die Funktion aktualisiert das betroffene Element...

@Quase ich benutze das Framework erst seit gestern und bin daher noch nicht ganz vertraut damit. Ich habe die Callback-Funktion onComplete wie folgt genutzt:
Code:
<script type="text/javascript">
function divUpdate() {
	new Ajax.Updater($('none'), 'next.php', {
		method: 'get',
		onComplete: function() {
			$('none').id = "mceEditor";
		}
	});
}
</script>
HTML:
<a onclick="divUpdate()">Edit</a>

Noch immer ändert sich mein Quelltext nicht. Ich habs auch bereits mit document.observe() versucht, der Inhalt ändert sich zwar immer, jedoch nicht im Quelltext.

Es müsste doch auch ganz simpel SO funktionieren?
HTML:
<a onclick="$('none').id = 'mceEditor'">NextTry</a>

Hab ich einen Gedankenfehler?
 
Zuletzt bearbeitet:
Zurück