PEAR-Forum.de Übersicht Thema anzeigen - beim click auf submit soll eine js-function starten

beim click auf submit soll eine js-function starten


 

PEAR-Forum.de Übersicht » PEAR-Developer & OOP
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Hannes
Neuer User


Anmeldungsdatum: 02.06.2005
Beiträge: 9

Beitrag02.06.2005 15:24    beim click auf submit soll eine js-function starten Antworten mit Zitat

hallo experten Smile,

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 Smile
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
Benutzer-Profile anzeigen Private Nachricht senden
alexpetri
User


Anmeldungsdatum: 24.02.2004
Beiträge: 250
Wohnort: Frankfurt Main

Beitrag02.06.2005 15:57     Antworten mit Zitat

such mal n bissl rum
hier steht schon einiges dazu im forum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hannes
Neuer User


Anmeldungsdatum: 02.06.2005
Beiträge: 9

Beitrag03.06.2005 23:39     Antworten mit Zitat

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 Smile)
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 Shocked

Es wäre super wenn mir jemand was dazu sagen könnte...
besten Dank und
ciao ciao
Hannes
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hannes
Neuer User


Anmeldungsdatum: 02.06.2005
Beiträge: 9

Beitrag08.06.2005 13:15     Antworten mit Zitat

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? Confused
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alexpetri
User


Anmeldungsdatum: 24.02.2004
Beiträge: 250
Wohnort: Frankfurt Main

Beitrag08.06.2005 14:12     Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hannes
Neuer User


Anmeldungsdatum: 02.06.2005
Beiträge: 9

Beitrag12.06.2005 13:32     Antworten mit Zitat

hallo ... speziell an alex Smile

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
Benutzer-Profile anzeigen Private Nachricht senden
alexpetri
User


Anmeldungsdatum: 24.02.2004
Beiträge: 250
Wohnort: Frankfurt Main

Beitrag13.06.2005 9:49     Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hannes
Neuer User


Anmeldungsdatum: 02.06.2005
Beiträge: 9

Beitrag13.06.2005 10:28     Antworten mit Zitat

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 Laughing)

nun zu deinen ausführungen Smile:
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 Crying or Very sad )

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
Benutzer-Profile anzeigen Private Nachricht senden
alexpetri
User


Anmeldungsdatum: 24.02.2004
Beiträge: 250
Wohnort: Frankfurt Main

Beitrag13.06.2005 11:52     Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
alexpetri
User


Anmeldungsdatum: 24.02.2004
Beiträge: 250
Wohnort: Frankfurt Main

Beitrag13.06.2005 11:55     Antworten mit Zitat

btw.: im firefox funzt das ding nicht!

ich bin dafür das du den FCKEditor implementierts Cool Laughing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MaGdev
Site Admin


Anmeldungsdatum: 04.02.2004
Beiträge: 715
Wohnort: Hamburg

Beitrag13.06.2005 13:55     Antworten mit Zitat

...oder vielleicht HTMLarea? Wurde schon mal drüber gesprochen und es gibt auch schon eine Implementierung...

http://www.pear-forum.de/viewtopic.php?t=318&highlight=htmlarea

Grüße,
Marco

_________________
Auch der längste Weg beginnt immer mit einem kleinem Schritt!

Vorgehen bei Problemen:
1. PHP-Handbuch oder PEAR-Handbuch lesen!
2. Forensuche benutzen!
3. Fragen posten und dabei die Regeln beachten!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hannes
Neuer User


Anmeldungsdatum: 02.06.2005
Beiträge: 9

Beitrag13.06.2005 14:27     Antworten mit Zitat

hallo nochma,
danke für die reaktionen ... der html area is echt super... den darf ich aber leider nicht nehmen Confused
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 Rolling Eyes -> jetzt gehts aber wieder

nun ne lösung zu dem beschriebenen problem mit der funktion scheint ja trotzdem keiner zu kennen oder?? Embarassed
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alexpetri
User


Anmeldungsdatum: 24.02.2004
Beiträge: 250
Wohnort: Frankfurt Main

Beitrag13.06.2005 14:39     Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hannes
Neuer User


Anmeldungsdatum: 02.06.2005
Beiträge: 9

Beitrag13.06.2005 15:08     Antworten mit Zitat

LOL Smile

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 Smile

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
Benutzer-Profile anzeigen Private Nachricht senden
alexpetri
User


Anmeldungsdatum: 24.02.2004
Beiträge: 250
Wohnort: Frankfurt Main

Beitrag13.06.2005 15:31     Antworten mit Zitat

also die fertige klasse (modul) posten ist ja wohl pflicht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Diese Seite übersetzen
PEAR-Forum.de Übersicht » PEAR-Developer & OOP
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
   Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Zu Deinen Favoriten hinzufügen

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen