Javascript ausführen bei der Erstellung eines Beitrags

  • Seite 1 von 2
31.05.2018 15:30
avatar  Laconda
#1 Javascript ausführen bei der Erstellung eines Beitrags
La
Mitglied

Hallo,

ich wollte mich erst in das ganze Plugin-System einarbeiten und es selbst machen, aber ich fühle mich doch etwas erschlagen und hoffe, dass mich jemand beraten kann, da ich tatsächlich gerne nur eine einfache Sache in mein Forum einbauen würde:

Beim Erstellen eines Beitrags (also beim Klick auf "Beitrag speichern") soll das folgende Javascript ausgeführt werden, das eine Reihe von 20 Zufallszahlen zwischen 0 und 9 ausgibt:

1
2
3
4
5
6
7
8
9
10
11
12
13
 
<? $nachricht=(isset($_POST['nachricht']))?$_POST['nachricht']:''; ?>
<html><head><title>TA + JS</title>
<script type="text/javascript">
<!--
function diceAndSend(){var c=String.fromCharCode(13);var s=c+c+'---'+c+'Würfel:';
for(var i=0;i<20;i++){var x=Math.round(Math.random()*9);if(i%5==0)s+=' ';s+=x;}
document.getElementsByName("nachricht")[0].value+=s;document.getElementsByName('newms')[0].submit();}
//-->
</script></head><body>
<form name="newms" method="post">
<textarea name="nachricht" style="width:600px;height:600px;"><?= $nachricht; ?></textarea>
<input type=button onclick="javascript:diceAndSend();" value="senden">
</form></body></html>
 



Meine Fragen:

Was für eine Art von "Element" muss ich hierfür erstellen?

Was muss ich ggf. im Code anpassen, damit das korrekt ausgeführt wird?

Durch welche Seiten lese ich mich ggf. am besten durch, um das umzusetzen?

Falls das doch sehr einfach ist und mich jemand da sogar komplett durchführen kann, würde ich mich natürlich noch mehr freuen

Viele Grüße,
Laconda


 Antworten

 Beitrag melden
31.05.2018 22:52
avatar  Olaf
#2 RE: Javascript ausführen bei der Erstellung eines Beitrags
Ol
Mitglied

Zitat von Laconda im Beitrag #1

Falls das doch sehr einfach ist und mich jemand da sogar komplett durchführen kann, würde ich mich natürlich noch mehr freuen



Dazu müsstest Du uns mehr über Deinen Zweck des Javascript erklären.
Da Du eine eigene Textarera erstellt hast,nehme ich an,das Du das Javascript in eine externe Seite einbauen willst.
Wofür soll die Würfelfunktion sein?
Vom Javascript her soll man einen Text eingeben,dann wird beim Absenden des Textes eine mehrstellige Zahl "erwürfelt",die mit dem Text abgespeichert werden soll.
Die Funktion müsstest Du uns mal genauer erklären,damit man genau weiss,was Du haben möchtest.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
10.06.2018 05:51
avatar  Laconda
#3 RE: Javascript ausführen bei der Erstellung eines Beitrags
La
Mitglied

Guten Morgen

Vielen Dank für Deine Antwort!

Nein, eigentlich soll das in keine separate Textarea. Inwiefern hab ich eine erstellt? Ich weiß nicht mal wie bzw. was du meinst.

Und die Funktion ist genau die, die du bereits beschrieben hast: wenn ein User einen Beitrag postet, sollen die Zufallszahlen generiert werden. Nichts weiter.

Ich möchte das Forum als Play-By-Post für unsere Rollenspielrunde nutzen.

Viele Grüße,
Laconda


 Antworten

 Beitrag melden
10.06.2018 11:56 (zuletzt bearbeitet: 10.06.2018 11:57)
avatar  Olaf
#4 RE: Javascript ausführen bei der Erstellung eines Beitrags
Ol
Mitglied

Wenn Du das Plugin selber schreiben willst,dann wirst Du Dich wohl in der API des Pluginsystem durcharbeiten müssen und vor allem auch in das Templatesystem.Ohne dem wird es nichts.
Hier mal ein kleines Flußdiagramm,wie das Plugin aussehen sollte:

- Abfrage → handelt es sich um die Thread ID (Der Bereich,wo nur diese Funktion vorhanden sein soll)
- Abfrage → handelt es sich um das Element "Beitrag schreiben"
- Abfrage → wird der Button "Beitrag senden" gedrückt
- wenn ja,dann Javascript "Zahlen erzeugen" auslösen und vor dem Absenden die Zahlen in die Textarea einfügen

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
10.06.2018 20:50
avatar  Laconda
#5 RE: Javascript ausführen bei der Erstellung eines Beitrags
La
Mitglied

Ok, werds probieren.

Danke für die Infos und das Flußdiagramm!

Gruß,
Laconda


 Antworten

 Beitrag melden
14.06.2018 14:55
avatar  Laconda
#6 RE: Javascript ausführen bei der Erstellung eines Beitrags
La
Mitglied

Hallo, ich hoffe es ist ok, wenn ich nochmal frage, bzw. mich korrigiere?

Tatsächlich sollen nur diese 3 Zeilen Javascript ausgeführt werden (den generierten Text ans Ende des Textfeldes anhängen), sobald jemand auf "Beitrag speichern" klickt. Ich brauche keine externen Variablen oder Abfragen oder sonstiges.

Vielleicht kann mir doch noch jemand sagen, wo ich das einfügen muss?

1
2
3
 
function diceAndSend(){var c=String.fromCharCode(13);var s=c+c+'---'+c+'Würfel:';
for(var i=0;i<20;i++){var x=Math.round(Math.random()*9);if(i%5==0)s+=' ';s+=x;}
document.getElementsByName("nachricht")[0].value+=s;document.getElementsByName('newms')[0].submit();}
 



...oder was ich falsch mache?

Was ich probiert habe:

→ "Neues Element erstellen" → "Template Element" → "Neuen Beitrag schreiben" → "New message footer (...)" → dort das Script eingefügt...

Wo liegt mein Fehler?

Gruß, Laconda


 Antworten

 Beitrag melden
14.06.2018 17:56 (zuletzt bearbeitet: 14.06.2018 17:59)
avatar  Mike48
#7 RE: Javascript ausführen bei der Erstellung eines Beitrags
avatar
Mitglied

So solltes funktionieren. Allerdings kann man im Beitrag nichts schreiben, da das Script direkt speichert.
Wenn du die Zeile 11 weg lässt, kann man noch schreiben und dann den Speicher-Button drücken.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<script>
function diceAndSend() {
var c=String.fromCharCode(13);
var s=c+c+'---'+c+'Würfel:';
for(var i=0;i<20;i++){
var x=Math.round(Math.random()*9);
if(i%5==0) s+=' ';
s+=x;
}
document.getElementsByName("nachricht")[0].value+=s;
document.getElementsByName('newms')[0].submit();
}
diceAndSend();
</script>
 


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
14.06.2018 18:04 (zuletzt bearbeitet: 14.06.2018 18:07)
avatar  Mike48
#8 RE: Javascript ausführen bei der Erstellung eines Beitrags
avatar
Mitglied

So geht es.
Erst nach Speicher-Button wird der Würfel eingefügt und gespeichert.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<script>
function diceAndSend() {
var c=String.fromCharCode(13);
var s=c+c+'---'+c+'Würfel:';
for(var i=0;i<20;i++){
var x=Math.round(Math.random()*9);
if(i%5==0) s+=' ';
s+=x;
}
document.getElementsByName("nachricht")[0].value+=s;
}
$('#newmsg').click(function() { // auf Speicher-Button triggern
diceAndSend(); // dann die Wuerfel-Funktion aufrufen
});
</script>
 


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
14.06.2018 18:34
avatar  Laconda
#9 RE: Javascript ausführen bei der Erstellung eines Beitrags
La
Mitglied

Vielen Dank!

Leider funktioniert es bei mir noch nicht.

Mache ich vielleicht bei der Erstellung was falsch?

→ "Neues Element erstellen" → "Template Element" → "Neuen Beitrag schreiben" → "New message footer (...)" → dort das Script eingefügt...


 Antworten

 Beitrag melden
14.06.2018 20:27 (zuletzt bearbeitet: 14.06.2018 20:29)
avatar  Mike48
#10 RE: Javascript ausführen bei der Erstellung eines Beitrags
avatar
Mitglied

Ich habe es in Neuen_Beitrag_schreiben - Footer



Ist das Plugin auch aktiv?

Welches Template verwendest du?

Ich habe es für das Business gemacht. Ist wichtig wegen dem Speicher-Button. Der ist in anderen Templates bestimmt anders.


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
14.06.2018 21:01
avatar  Lobbo
#11 RE: Javascript ausführen bei der Erstellung eines Beitrags
avatar
Mitglied

Bei mir geht es auch.

Problem :
bei mir , im Template "Neuen Beitrag schreiben"
greift - Abfrage der Thread ID nicht.


 Antworten

 Beitrag melden
14.06.2018 21:28
avatar  Mike48
#12 RE: Javascript ausführen bei der Erstellung eines Beitrags
avatar
Mitglied

Die ForenVariable {{thread_id}} steht da scheinbar nicht zur Verfügung, obwohl die ID an mehreren Stellen verwendet wird.
Ich mein. auch schon mal danach gesucht zu haben. Weiß die Lösung aber jetzt nicht mehr. Vielleicht finde ich noch was.


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
14.06.2018 23:37 (zuletzt bearbeitet: 14.06.2018 23:41)
avatar  Laconda
#13 RE: Javascript ausführen bei der Erstellung eines Beitrags
La
Mitglied

Bei mir sieht das anders aus. Ein Feld für "Element" gibt es bei mir nicht.

Nur wenn ich erst auf "Inline-Element" klicke, dann wieder "Footer" aktiviere, taucht es auf. Dann steht da aber "new_message_... (1standard, ..."), also etwas anderes als bei dir.

Bei Erstellung erhalte ich manchmal (nicht immer) die Fehlermeldung: "falseDuplicate entry '797385-dizeplugin-new_message-footer-' for key 'PRIMARY' SQL was: INSERT INTO forum_plugin_pages (board,pluginid,trigger_templatename,view_templatename,view_where,view_inline ) VALUES ('797385','dizeplugin','new_message','plugin_dizeplugin_new_message_footer','footer','' ) - "

Aber selbst wenn alles gut geht, werden keine Zahlen generiert und in den Beitrag geschrieben.

Woran erkenne ich, ob das Plugin "aktiv" ist, wo wird das angezeigt?

Und wie wähle ich das Business-Template aus? Markiert sind bei mir bei Erstellung alle außer Mobile (unter "Unterstützte Templates"). Ich wusste gar nicht, dass ich da etwas auswählen muss.


 Antworten

 Beitrag melden
15.06.2018 07:17
avatar  Laconda
#14 RE: Javascript ausführen bei der Erstellung eines Beitrags
La
Mitglied

...auch das "Hallo Welt"-Tutorial (bis "Ein kurzer Test auf der Foren-Startseite sollte uns bestätigen, dass dort nun unser Plugin-Element ausgeführt wird und der Text "Hallo Welt" erscheint.") wird bei mir nicht ausgeführt, obwohl ich es nochmal Schritt für Schritt umgesetzt habe.

Javascript ist bei mir eingeschaltet. Getestet habe ich mit Firefox und Internet Explorer. Dennoch taucht bei mir nirgends "Hallo Welt" auf.

Woran kann das liegen?

Bin zwar blutiger Anfänger, aber dass nicht mal das funktioniert, bringt mich gerade leicht zur Verzweiflung...


 Antworten

 Beitrag melden
15.06.2018 09:09
avatar  Mike48
#15 RE: Javascript ausführen bei der Erstellung eines Beitrags
avatar
Mitglied

Welches Template hat dein Forum?

- Business
- Gaia
- ProSilver
- Standard

Wenn das (http://797385.xobor.de/) dein Forum ist, sieht aus wie Gaia.

Zu sehen unter

Admin → Template Entwicklung → Template



Im Gaia funktioniert mein Script nicht. Muss auf Gaia angepasst werden. Da hat der Speicher-Button andere Selektoren.


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!