Smilycode in Eingabefeld erzeugen?

  • Also, mein Gästebuch hat eine Funktion, die z.B. aus einem Doppelpunkt und einer Klammer einen lächelnden Smiley macht und aus anderen Zeichenfolgen andere Smilies. Was ich aber jetzt suche ist genau das Gegenteil. Quasi genau wie hier im Forum. Ich möchte Smilies in einem extra Feld anzeigen und wenn der User einen anklickt soll im Eingabefeld der dazugehörige Code erscheinen. Genau so wie hier im Forum, wenn man den Very Happy Smily anklickt und einen Doppelpunkt und ein großes D im Textfeld bekommt.

  • da brauchst du eine javascript-funktion für:

    Code
    <script type="text/javascript">
    
    
    function SmilieEinfuegen(Smilie)
    {
    	document.form.mitteilung.value+=Smilie+" ";
    	document.form.mitteilung.focus();
    }
    </script>


    das "mitteilung" in der funktion musst du noch durch den namen deines textfeldes ersetzen in dem der smily erscheinen soll, das ganz rufst du dann auf mit:

    Code
    [url='javascript:SmilieEinfuegen(' :D')'][img]images/gbook/smilies/grins.gif[/img][/url]


    später wird dann der smily mittels php wieder ausgetauscht:

    Code
    $mitteilung = str_replace(":D", "<img src=\"images/gbook/smilies/grins.gif\">", $mitteilung);


    fertig.
    mfg
    @unter mir: tja :P

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Kannst einfach ne JS Funktion machen. z.B. so:

    Code
    function smiley(name) {
    document.formname.textareaname.value += " "+name+" ";
    }

    die wird dann aufgerufen, wenn du auf einen Smiley klickst:

    Code
    [url='javascript:smiley('name')'][img]smileyurl[/img][/url]
    
    
    oder
    
    
    [url='#'][img]smileyurl[/img][/url]
  • Irgentwie schein ich es doch nicht kapiert zu haben. :oops:
    Ich schilder das Problem mal am Beispiel von Script B:

    Code
    echo ('<form name="eingabe" method="post" action="gb.php">


    Also eingabe heisst meine Form!

    Code
    echo('<textarea name="text"; cols="88"; rows="10"');


    Die Textarea heisst text

    Dann schreib ich oben in das Script:

    Code
    echo'<script language="JavaScript" type="text/javascript">
            <!--
            function smiley(name) { 
            document.eingabe.text.value += " "+name+" "; 
            }
            //-->
            </script>';

    und unten ruf ich es auf mit:

    Code
    <tr>
      <td bgcolor="#C1C7DB" height="15">
        <a href="#" onclick="smiley(D)">
         [img]img/s1.gif[/img]
        </a>
       </td>
     </tr>

    Der Smiley soll also einfach durch ein D ersetzt werden.

    Klicke ich den Smiley an dann passiert nix, außer das unten in der Leiste das gelbe Warndreieck erscheint mit "Fehler auf der Seite".
    Ändere ich onclick="smiley(D)" zu onclick="smiley('D')", so wie ursprünglich empfohlen bekomme ich einen:
    Parse error: syntax error, unexpected T_STRING in C : \wamp\www\Test\form.inc.php on line 95

    Bei Script 1 hab ich dieselben Probleme. :(

  • Ich weiß garnet ob das geht. PHP lässt sich ja nur bedingt mit JS verbinden.
    :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?: :?:

  • Ups, peinlich :oops:
    War eine Schlampigkeit beim maskieren, so funzt es:

    Code
    <tr> 
      <td bgcolor="#C1C7DB" height="15"> 
        <a href="#" onclick="smiley(\'D\')"> 
         [img]img/s1.gif[/img] 
        </a> 
       </td> 
     </tr>