| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Hannes Neuer User
Anmeldungsdatum: 02.06.2005 Beiträge: 9
|
02.06.2005 15:24 beim click auf submit soll eine js-function starten |
|
|
hallo experten ,
ich versuche eine Pearklasse zu entwickeln, die einen Javascript basierenden Ritch Text Editor implementiert. Dieses soll in einem Form geschehen (Quickform).
Man kann also ein neuese Formular anlegen und dort den Editor add'en. Dann benötigt man noch den Submitbutton, der den Inhalt des Editors nach den im Formular spezifizierten Eigenschaften behandelt ... also i.d.R. irgendwo hin schickt
Das Problem an dem Editor, den ich benutzen muss ist, dass er, nachdem man seinen Text editiert hat, aktualisiert werden muss. Sprich es muss eine Javascriptfunktion ausgeführt werden. Dies sollte dann geschehen, wenn man auf den Submitbutton clickt.
Nun die Frage:
Wie müsste ich die pearklassen umbauen bzw. gibt es schon Pearklassen, die den Submitbutton dazu bringen eine js-function auszuführen?
Schon ma besten Dank an alle die mir helfen wollen!
Ciao ciao
Hannes |
|
| Nach oben |
|
 |
alexpetri User
Anmeldungsdatum: 24.02.2004 Beiträge: 250 Wohnort: Frankfurt Main
|
02.06.2005 15:57 |
|
|
such mal n bissl rum
hier steht schon einiges dazu im forum |
|
| Nach oben |
|
 |
Hannes Neuer User
Anmeldungsdatum: 02.06.2005 Beiträge: 9
|
03.06.2005 23:39 |
|
|
Hallo,
stimmt du hast recht es gibt da schon etwas zu dem Thema z.B.:
| Code: | | $form->addElement("...", "...", "...", array("onClick" => "submitForm()")); |
| Code: | | $form->updateElementAttr("...", array("onClick" => "submitForm()")); |
Aber ich habe das prinzipiell etwas anders gemeint (zugegeben allerdings nicht gut genug beschrieben )
Diese im Codebsp. angegebenen Attribute müssen vom Pear nutzenden Entwickler angegeben werden. Das wollte ich ihm ersparen, indem ich meine Editor-Klasse dazu bringe das zu machen.
Da die Editorklasse selbst, wenn sie instanziiert wird nur ein Form-Objekt ist und der Submit-Button selbst auch ein solches Objekt ist stehe ich da vor einem Problem. Ich müsste also vom Editor-Objekt auf das Submit Objekt zugreifen können (und zwar nicht nach Namen sondern direkt nach Typ) und diesem das onClick-Attribut übergeben.
Ich habe nun weder im Formu einträge dazu gefunden noch fand ich Funktionen in den Pear-Klassen die mir das möglich machen.
Also entweder sowas geht nicht oder ich habe Tomaten auf den Augen
Es wäre super wenn mir jemand was dazu sagen könnte...
besten Dank und
ciao ciao
Hannes |
|
| Nach oben |
|
 |
Hannes Neuer User
Anmeldungsdatum: 02.06.2005 Beiträge: 9
|
08.06.2005 13:15 |
|
|
Hallo nochma...
gibts wirklich niemanden, der damit schon Erfahrung gesammelt hat bzw. sich vorstellen kann wie es gehen könnte? Oder gehts vielleicht gar nicht?  |
|
| Nach oben |
|
 |
alexpetri User
Anmeldungsdatum: 24.02.2004 Beiträge: 250 Wohnort: Frankfurt Main
|
08.06.2005 14:12 |
|
|
ich denke mal du willst diesen RichTextEditor als eigenes element
benutzen
nach dem motto:
$form->addElement("RichTextEditor","text",...);
dann musst du quasi ein neues element bauen.
ich hab genau dieses Problem auch schonmal angefangen und mir die Zähne daran ausgebissen (1 Tag lang). das war mir dann den Aufwand nicht wert.
prinzipiell wäre es schon wünschenwert mal so ein neues elemtPlugin zu erstellen.
es gibt sowas auch zum teil schon - nur zum laufen hab ich es nicht bekommen...
und genau dazu steht auch schon was hier im Forum (in HTML ziemlich weit hinten) |
|
| Nach oben |
|
 |
Hannes Neuer User
Anmeldungsdatum: 02.06.2005 Beiträge: 9
|
12.06.2005 13:32 |
|
|
hallo ... speziell an alex
so ein richtexteditor-element hab ich doch schon und es funktioniert
dh. ich kann es genau so importieren:
$form->addElement("RichTextEditor","text",...);
dieser editor wandelt nun formatierten text in html quellcode um. um diesen zu benutzen füge ich einen submitbutton ein:
$form->addElement("submit","submit",...,array("onClick" => "submitForm()"));
wie man sieht übergebe ich dem einen js-funktionsaufruf
und genau so funktioniert es auch einwandfrei
aber so wollte ich es nicht haben. sonder:
der submitbutton soll ganz normal ohne den funktionsaufruf angelegt werden.
da ich den js-funktionsaufruf aber brauche soll er vom editor angelegt werden und zwar in dem submitelement.
mit anderen worten: das editor-element soll auf das submit-button-element zugreifen können und ihm diesen funktionsaufruf übergeben, also man müsste da irgendwie auf das attribut-array zugreifen können und ihm das onClick" => "submitForm()" übergeben können.
ist sowas überhaupt denkbar?? und wenn ja wie???
bis denn ciao ciao
hannes |
|
| Nach oben |
|
 |
alexpetri User
Anmeldungsdatum: 24.02.2004 Beiträge: 250 Wohnort: Frankfurt Main
|
13.06.2005 9:49 |
|
|
puh das ist natürlich komplex... aber sicher nicht unlösbar...
wäre schön das mal an einem Beispiel online zeigen könntest.
es gibt eine js funktion die das Formular abschickt.
aber man hat doch eh nur einen submit button auf der Seite !?? oder?
ich dachte die RTE(RichTextEditoren) machen da on the fly (javascript:onChange())
HTML code draus... welcher dann in einer Variable an das Formular übergeben wird...
alles andere macht keinen Sinn.
->stell dir vor du brauchst plötzlich zwei oder mehr RTEs
->also onlineBsp (+ Quellcode)
sonst reden wir an einander vorbei |
|
| Nach oben |
|
 |
Hannes Neuer User
Anmeldungsdatum: 02.06.2005 Beiträge: 9
|
13.06.2005 10:28 |
|
|
hallo,
ok, meine quelltexte findest du unter: http://hannes.homeip.net/test
da gibt es:
die test.php und die test.phps -> so kann der editor im moment implementiert werden
und die editor.phps die entsprechende editor.php liegt in den pear-verzeichnissen
in der editor.phps ist eigentlich nur die funktion toHTML() interessant, was das thema angeht. (damit du dich nicht kaputt suchst )
nun zu deinen ausführungen :
ja es gibt eine js-funktion, die schickt aber nicht das formular ab sondern aktualisiert den editor weil dieser editor (der RTE) das eben leider nicht on the fly kann.
(der HTML-Area kann das ... darf ich aber nicht nehmen )
abgeschickt wird es ganz normal über die submit funktionalität von pear... (darum sind in der test.php auch noch ein paar andere elemente um eben sowas auch realisieren zu können)
jaaa, also im moment muss man eben das array mit der js funktion noch von hand in den submitaufruf schreiben (wie du in der test.phps) siehst es wäre schön wenn man das durch das anlegen des editorelements automatisieren kann...
noch kurz was zur editor.php: das is einfach ne abgewandelte textarea.php aus den pear-kassen. |
|
| Nach oben |
|
 |
alexpetri User
Anmeldungsdatum: 24.02.2004 Beiträge: 250 Wohnort: Frankfurt Main
|
13.06.2005 11:52 |
|
|
kurze Frage mal am Rande:
der aktualisiert doch...
hab mal n bissl rumprobiert
was im mom ein Problem darstellt ist wenn man ein Feld (zB. Titel vergisst)
das er die änderungen nicht übernimmt (ist das dein Problem???)
das liegt aber an der setContent methode
die ist von dir, oder? -> wenn du die nimmst überschreibt er dir immer wieder
deinen Content vom vorherigen mal!
also könntest/müsstest du die setValue / getValue wieder aktivieren
auch die getFrozenHtml... |
|
| Nach oben |
|
 |
alexpetri User
Anmeldungsdatum: 24.02.2004 Beiträge: 250 Wohnort: Frankfurt Main
|
13.06.2005 11:55 |
|
|
btw.: im firefox funzt das ding nicht!
ich bin dafür das du den FCKEditor implementierts  |
|
| Nach oben |
|
 |
MaGdev Site Admin

Anmeldungsdatum: 04.02.2004 Beiträge: 715 Wohnort: Hamburg
|
|
| Nach oben |
|
 |
Hannes Neuer User
Anmeldungsdatum: 02.06.2005 Beiträge: 9
|
13.06.2005 14:27 |
|
|
hallo nochma,
danke für die reaktionen ... der html area is echt super... den darf ich aber leider nicht nehmen
und der FCKEditor macht nen echt super eindruck so auf den ersten Blick ... (hätt ich das ma früher gewusst)
aber ich hab das Projekt nun mit dem RTE fast fertig ... es ist halt nur noch die letzte kleinigkeit mit der funktion...
und auch noch ma besten dank für den hinweis das es im firefox nicht geht... hab ich gar nicht bemerkt -> jetzt gehts aber wieder
nun ne lösung zu dem beschriebenen problem mit der funktion scheint ja trotzdem keiner zu kennen oder??  |
|
| Nach oben |
|
 |
alexpetri User
Anmeldungsdatum: 24.02.2004 Beiträge: 250 Wohnort: Frankfurt Main
|
13.06.2005 14:39 |
|
|
naja, wahrsch. hälst du mich für total beknackt...
aber für mich würde es bei der lösung die du da hast kein Problem geben...
es funktioniert ja alles, bis auf meine anmerkung oben getters setter / setDefaults
schilder doch dein Problem (für mich) mal so:
...ich gebe das und das ein...
...dann möchte ich abschicken...
...es sollte diese und jenes bei den submitteten Werten ankommen...
...es kommt aber leider nur [bullsht] an... |
|
| Nach oben |
|
 |
Hannes Neuer User
Anmeldungsdatum: 02.06.2005 Beiträge: 9
|
13.06.2005 15:08 |
|
|
LOL
stimmt du hast recht... es funktioniert alles soo wies sein soll.
allerdings hab ich noch ein problem mit dem aufbau des systems.
also: ich will das es so funktioniert wie es gerade funktioniert es soll nur anders aufgebaut sein
und zwar ist es im moment so:
in der datei test.php werden ja die elemente erzeugt unter anderem auch der submit button und der bekommt ein onClick event für die genannte js-funktion.
es soll aber so werden:
, dass auf die eingabe dieses onClick-Event verzichtet werden kann. da aber die funktion trotzdem aufgerufen werden muss, soll sie vom editor selbst angelegt werden. sprich von der editor.php aus.
dazu kommt, dass die funktion beim klicken das submitbuttons ausgeführt werden muss. mit anderen worten in der editor.php muss eine funktionalität da sein, die dem submitbutton das onClick => js-funktion übergibt.
mir is gerade im augenblick eine theoretische lösung über javascript eingefallen, die muss ich aber erstmal testen.
also bsten danke für eure bemühungen - macht euch erstmal keine platte ich probier die idee vorher aus
bis dann ciao ciao
hannes
ps.: wenn es geht und falls es jemanden interresiert schreib ich noch mal dazu wie ichs gemacht habe. |
|
| Nach oben |
|
 |
alexpetri User
Anmeldungsdatum: 24.02.2004 Beiträge: 250 Wohnort: Frankfurt Main
|
13.06.2005 15:31 |
|
|
| also die fertige klasse (modul) posten ist ja wohl pflicht! |
|
| Nach oben |
|
 |
|
|