bb code ob klick, hoffe jemand kann mir helfen!

melbe

Grünschnabel
Hallo Leute!
Habe ein kleines Gästebuch Skript...
darin befindet sich eben ein Textfeld in dem man die Nachricht ein geben kann,
zusätzlich erscheinen auf der Seite Smielies und der dazugehörige bbcode!

Da ist aber mühsam für alle, da sie immer selbst den bbcode eintippen müssen!
wer sichs anschauen mag:
http://www.mely-online.com/gaestebuch/gaestebuch.php?action=eintragform

nun würde ich gerne wissen ob ich den code so abändern kann, das wenn jemand auf den smiley klickt der bbcode automatisch in der textarea erscheint!
kenn mich aber nicht wirklich gut in php aus...

derweil siehts es so aus:
(denke das ist der relevante code für das konkrete problem)

es gibt ein gästebuch.php und dazugehörige tpl files
gästebuch.php
Code:
require("config.inc.php");
require($header);

function output($kommseite,$gbseite,$admin=0) {
	GLOBAL $PHP_SELF,$smileConf,$kommentareProSeite,$datumsFormat,$mysqlTabelle,$version,$templateDir;
	$template=$templateDir."/gaestebuch.tpl";
	

	
	$start=(int)($gbseite-1)*$kommentareProSeite;
	
	$smileDatei=file($smileConf);
	for($s=0;$s<count($smileDatei);$s++) {
		list($smilet[$s],$smileu[$s])=explode(" ",$smileDatei[$s]);
		$smilet[$s]=str_replace("\)","\\)",$smilet[$s]);
		$smilet[$s]=str_replace("\(","\\(",$smilet[$s]);
	}
etc....

und hier das eintrag.tpl

Code:
<form action="<? echo $PHP_SELF ?>" method=post><input type=hidden name="action" value="eintrag">

....etc...

<textarea rows="10" cols="48" wrap="virtual" name="nachricht"></textarea>
font face="Arial" style="font-size: 9pt"><br>
</font><font face="Arial"><span style="font-size: 9pt">
<input type="submit" value="Eintragen"></span></font><font face="Arial" style="font-size: 9pt">
</font><font face="Arial"><span style="font-size: 9pt"> <input type="reset" value="Löschen"></span></font><font face="Arial" style="font-size: 9pt">
		</font><b><font face="Arial" style="font-size: 9pt">

Hoffe jemand kann mir helfen
Lg Melbe
 
aja hab was vergessen, das ist noch ein wichtiger teil des codes in der eintrag.tpl

Code:
	<?
		$smileDatei=file($smileConf);
		for($i=20;$i<38;$i++) {
		list($smile,$url)=explode(" ",$smileDatei[$i]);
		echo "<table><tr><td><img src=\"$url\"></td><td>$smile</td></tr></table>";}
		?>
				</tr>
				<td>
				<?
				$smileDatei=file($smileConf);
				for($i=38;$i<count($smileDatei);$i++) {
				list($smile,$url)=explode(" ",$smileDatei[$i]);
				echo "<table><tr><td><img src=\"$url\"></td><td>$smile</td></tr></table>";}
				?>
				</tr>
				</table>		
		</table>
 
Hallo,
vielleicht hilft dir ja folgendes Beispiel:
Code:
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<script language = javascript>
<!--
function smilie(thesmilie)
{
		document.form.text.value +=thesmilie;
		document.form.text.focus();
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>smilie</title>
</head>
<body>
<form method="POST" name="form" action="ziel.php">
 <p><textarea rows="8" name="text" cols="39"></textarea></p>
 <p><a href="javascript:smilie(':)')"><img border="0" src="bild.jpg"></a>
 <a href="javascript:smilie(':)')">:)</a></p>
 <p><input type="submit" value="Absenden" name="B1"><input type="reset" value="Zurücksetzen" name="B2"></p>
</form>
</body>
</html>

mfg
forsterm
 
Wollte mal wissen, ob das geht, das wenn man nun mit diesem Befehl z.B. zwei BBCode-Tags einfügen will, das der Cursor direkt zwischen den beiden Tags landen soll,
also : [ b ] Hier [ /b ]
 
Hab mal ne Frage zu dem Beispiel-Script.

Und zwar möchte ich das Beispielscript für ein CMS einsetzen. Funktioniert auch, jedoch habe ich mehrere Funktionen ( Beispiel: News schreiben, Artikel schreiben ), die ich über eine BB-Code Datei abdecken möchte. Das heißt konkret, dass ich ne bb-code.php datei habe, die z.B. so aussieht:

Code:
<input type="button" name="bold" value="B" onClick="javascript:input('')" id="bb_button">

Das wäre jetzt der Button für Fett-schreiben. Diese bb-code.php möchte ich halt überall includen, wo es notwendig ist ( news/artikel und so ).

Jetzt das Problem: Meine textarea bei den news heißt newstext und bei der Artikel-Funktion articletext. Jetzt dachte ich mir, könnte ich in der Haupt-Datei des CMS einfach folgendes machen ( "eintragen" heißt bei news/artikel die
Code:
<form>
):

Code:
<script language = javascript>
<!--
function input(thesmilie)
{
		document.eintragen.newstext.value +=thesmilie;
		document.eintragen.newstext.focus();
}
//-->
</script>

<script language = javascript>
<!--
function input(thesmilie)
{
		document.eintragen.articletext.value +=thesmilie;
		document.eintragen.articletext.focus();
}
//-->
</script>


Das Problem ist: Das funktioniert nich. Der BB-Code geht nur bei der Funktion, die als unterstes steht ( in diesem Fall bei der Artikel-Funktion ).

Ich hätte aber gerne, dass das bei News und Artikel ( und den anderen Funktionen des CMS wo es notwendig ist ) auch geht mit der zentralen bb-code.php !

Kann mir da jemand helfen, dass das funktioniert, wie ich das gerne hätte? Hab leider nicht wirklich viel Ahnung von JavaScript.

Mfg
elite
 
1. Wie bei deienem Vorredner: "javascript:" hat nichts in onload-Events zu suchen. Alle Events sind schon per Definition javascript, dass muss man ihnen nicht extra sagen und kann sogar zu Fehlern führen.

2. Dadurch, dass du zwei Funktionen mit dem gleichen Namen hast überschreibst du die eine so nur mit der anderen. So exisitiert immer nur die zuletzt notierte Funktion.

3. Dein Aufrunf der Javascript-Funktion input bewirkt gar nichts, da der Parameter leer ist. Damit wird dem Wert des Textfeldes ein leerer String addiert, der wie alle Neutralen Elemente nichts ändert.

Ich würde sowas in der Art machen.
PHP:
$formelement ="eintragen.newstext";
  include('bb-code.php');
  echo '<input type="button" name="bold" value="B" onClick="javascript:input('')" id="bb_button">';
bzw.
PHP:
$formelement ="eintragen.newstext";
  include('bb-code.php'');
  echo '<input type="button" name="bold" value="B" onClick="javascript:input('')" id="bb_button">';

Und in der bb-code.php dann:
PHP:
<script language = javascript>
     <!--
    function input(thesmilie)
    {
    		obj = document.<?php echo $formelement; ?>;
    		obj.value +=thesmilie;
    		obj.focus();
    }
    //-->
    </script>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück