AW: Funktion gibt 'false' zurück. Warum?? (JavaScript)
Och menno, hab doch im Moment gar keine Zeit für ne ausführliche Beschreibung. Nagut, du bekommst ne Lösungsbeschreibung, keine perfekte aber wenn sich das mal im Forum durchsetzt, dass jeder ne Lösungsbeschreibung "nach Vorlage" schreibt, werd ich sagen können, ich war einer der Ersten
Dennoch geh ich mal davon aus, dass derjenige der das jetzt hier liest und braucht sich zumindest schonmal mit dem Ajax Easy Text Editor auseinandergesetzt hat
Aufgabe: Easy Ajax Editor 2.0 in bestehendes Projekt einbinden
Problem: Der Link, welcher von der
instandEdit.js kreiert wird (Funktion: enviar()), bekommt folgende Struktur: eureseite/
update.php?fieldname=euerName&$content=euerInhalt&AlleEureSelbstbestimmtenVariablen&
(Steht in der o.g. Funktion)
Warum Problem?: Benötigt wird für das bestehende Projekt eine Linkstruktur wie folgende: dispatch.php?$&node=meinNode.meinNode&$nodetype=1&$nodelevel=0$template=1$stackID=1234567&$fieldname=meinName&$content=meinInhalt&
Das heißt!:
Meine php-Datei, welche den Inhalt an die DB senden soll, wird überhaupt nicht beachtet und sorglos in der Ecke stehen gelassen. Dafür wird ne update.php aufgerufen die es nicht einmal gibt oder so nicht geben darf!
Lösung:
Achtung: Was jetzt kommt ist mehr oder weniger allgemein gültig, da jeder selbst am besten weiß, wie und wo er seinen Inhalt in der Datenbank "updated". Bei mir passiert das halt in dem Node 'meinNode'! Bei euch vielleicht in der MeinLustigesUpdate.php oder eben auch in ner dispatch..
1. Im Template (oder wo auch immer ihr die Funktion aufruft) 'setVarsForm' angeben: setVarsForm("$&node=meinNode.meinNode&$nodetype=1&$nodelevel=0$template=1$stackID=1234567&");
Damit habt ihr euch schonmal die Grundstruktur eures Links manuell zusammengepuzzelt
2. In der instandEdit.js die Variable urlBase auf "dispatch.php" setzen. Bei euch wahrscheinlich dürfte sie weiterhin update.php heißen, dem ein oder anderen von euch wird es bekannt vorkommen: "Nee keine extra php-Datei dafür! Wir ham schon genug.. Die muss daaaa rein!!
3. In der instandEdit.js folgende Zeile anpassen:
nt = remotos.enviar(urlBase + "?fieldname=" +escape(elem.id)+ "&content="+escape(campo.value)+"&"+formVars,"");
Und zwar so:
nt = remotos.enviar(urlBase + "?" + formVars + "&fieldname=" +escape(elem.id)+ "&content="+escape(campo.value)+"&","");
Was passiert is klar, ich setz einfach den Link so wie ich ihn brauch zusammen
. Die enviar() checkt ob der Link existiert, falls ja gibt er
true zurück.
Fazit:
Die PHP-Datei, welche euren Inhalt weiterverarbeitet, muss nicht mehr die update.php sein, sondern kann jede beliebige php-Datei sein. Das heißt, baut ihr die ganze Geschichte in ein bestehendes Projekt ein, wo es klare Vorgaben gibt, lässt sich das Skript wunderbar anpassen. Also einfach wie oben den Link anpassen, sodass ihr alle eure Variablen wunschgerecht übergeben könnt und mit $_GET zum Beispiel weiterverarbeiten könnt.
Ich weiß, die beste Beschreibung isses nicht, aber wie gesagt, wer dabei nen Problem hat (auch wenns dann erst im halben Jahr ist
) kann sich ja gerne melden und ich versuch zu helfen. Und nun lasst dat Ding bitte nicht einstauben und verziert eure Websites mit schönem Ajax!