# automatische eingabe in einem textarea



## xenon (9. Juni 2003)

ich möchte eine <select> oder <option> liste erstellen, in der dann verschiedene values drinstehen sollen, diese values sollen dann automatisch in ein textarea eingetragen werden!
Eiegntlich soll es genauso funktionieren wie dieses vB code da oben, hab aber null ahnung wie man sowas machen kann! soll textformatierend werden! 
pls help me


----------



## Andreas Gaisbauer (9. Juni 2003)

Hi und welcome on Board,

also wenn du nur werte aus dem Dropdown übernemen willst, dann sollte dir das weiterhelfen:

```
<form name="form1">
<select name="select1" size="5" onChange="document.form1.text1.value = this.value;">
  <option value="bla 1">bla 1</option>
  <option value="bla 2">bla 2</option>
  <option value="bla 3">bla 3</option>
  <option value="bla 4">bla 4</option>
  <option value="bla 5">bla 5</option>
</select>
<br>
<textarea name="text1" cols="15" rows="5"></textarea>
</form>
```
Wenn du allerdings eine Art WYSIWYG Editor basteln willst, musst du dich mal im HTML / JS Forum umschauen / suchen - Wir hatten da einen sehr langen Thread dazu 

ciao


----------



## xenon (9. Juni 2003)

ich will etwas machen, das so ähnlich aussieht wie dieses vB code auf dieser page. Es soll später den text formatieren können, es muss aber lange nicht so umfangreich sein. schriftgröße,-farbe,-typ fett kursiv unterstrichen und verweis brauche ich, weis aber nicht im geringste wie ich das umsetzten kann! rein prinzipiell könnte ich ja benutzen was du mir geschrieben hast und die values="<i></i>" für den kursiven text setzten oder?

vielen dasnk für die schnelle hilfe, klappt ja echt super hier!  

nachtrag: nach dem smilie fällt mir ein, smileys will ich auch reinmachen!was ist WYSIWYG


----------



## Andreas Gaisbauer (9. Juni 2003)

WYSIWYG  = What you see is what you get = was du siehst ist das was du bekommst (frei übersetzt). Es gibt einige solcher Editoren um Text im Browser zu bearbeiten - z.B: http://richtext.cs.ramesys.com/rt-0.3/help/samples/test_embedded.asp
oder hier: http://www.intelimen.com.br/lib/editor/index.php

Das was du vor hast, ist halt nicht so komplex, aber dennoch komplex genug wenn man´s noch nie gamcht hat 

Du solltest dir erstmal klar werden wie du es machen willst. Willst du z.B. einen Button "Fett" klicken, woraushin sich eine Fenster öffnet in den der Fett zudruckende Text eingegeben werden soll, oder willst du den Text eingeben - das Wort markieren und dann auf "Fett" klicken? So rein aus dem Gefühl raus, denke ich wäre die erste Möglichkeit einfacher zu realisieren... Für konkreten Code fehlt mir jetzt aber leider die Zeit...

ciao


----------



## Thomas Lindner (9. Juni 2003)

Ein ähnlich Geschichte arbeite ich zur Zeit für ein Admin - Center
( das in PHP umgesetzt wird ) aus, ich nehme einfach einige Funktionen, die den Code einfügen1!

Leider ist der Code noch nicht 100% ausgereift!



Achtung: Das veröffentlichen meiner "Baustelle" ist nicht gleichzusetzen mit Übernahme meines kompletten Scriptes, es soll nur einen Anreiz geben!


----------



## Andreas Gaisbauer (9. Juni 2003)

> _Original geschrieben von Thomas L. _
> *
> Achtung: Das veröffentlichen meiner "Baustelle" ist nicht gleichzusetzen mit Übernahme meines kompletten Scriptes, es soll nur einen Anreiz geben! *


Jetzt hast du nur noch das Skript oder den Link zur Baustelle vergessen


----------



## Thomas Lindner (9. Juni 2003)

> _Original geschrieben von crono _
> *Jetzt hast du nur noch das Skript oder den Link zur Baustelle vergessen  *



Upps, ist mir das jetzt peinlich, Erdloch zum verkrichen sucht...


http://www.formularersteller.de/test.html


----------



## Andreas Gaisbauer (10. Juni 2003)

Genauso ein Script hatte ich auch vor Augen  - In deiner (c)-Notiz schreibst du, das Script sei IE only... Ich weis jetzt nicht inwieweit es Crossbrowser (CB) compatible sein muss, aber hast du mal darüber nachgedacht (evtl. auch schon angefangen) es CrossBrowser Compatible zu machen?  Afaik geht das mit der Midas Api doch recht gut... z.B. CB-RTE -> http://www.kevinroth.com/rte/richtext.js wenn ich mich nicht irre ist hier bzw das hier Project gehosted. Mir gehts eigentlich nur darum ob hier schon jemand richtig mit Midas gearbeitet hat - zum Erfahrungsaustausch sozusagen...

Noch ein abschliesender Link für alle die sich einen Überblick über die erhältlichen Editoren machen wollen / müssen: "The List" 

ciao


----------



## Thomas Lindner (10. Juni 2003)

Mein Code befindet sich in der niedrigsten Beta-Phase. 100%ige Cross-Browser Kompatiblität ist nicht erforderlich, da vom Kunden nur IE 5.5 gefordert ist. Aber batürlich ist es ein Anreiz auch auf anderen Browsern das ganze zum laufen zu bringen.

Ich bin leider noch nicht so der "Geck" was JavaScript angeht, so ist es mehr Try/Error mit kleinen Erfolgen gespickt.
Es gibt mittlerweile auch schon ein neue Fassung, die jedoch noch nicht veröffentlichbar ist...


----------



## Fabian H (10. Juni 2003)

Auch wenns ohne Textarea ist: Sowas hab ich auch mal gemacht:
http://dj-stylez.sprintweb.de/nuin/wysiwyg/wysiwyg.html

Is auch Teil eines umfangreichen Content-Managment-Systems.


----------



## xenon (12. Juni 2003)

also am liebsten wäre es mir, wenn man halt so ein fenster dann aufmacht wo man den z.b. fetten text reinschtreiben kann. die sache ist nur halt auch die, das die befehle auf keinen fall in html geschreiben sein sollen, weil ansonsten bekomme ich da am ende noch tabellen usw reingeschrieben, in diesem feld wird html komplett "aus" sein, das bedeutet, das ich das über nen preg_replace() oder so dann erst später ämdern werde, genauseo wie es hier. gibt wird es dann was ähnliches auch bei mir geben hab schon einpaar ideen, nur der javascript teil bereitet mir sorgen. Wie kann ich also in js bei einem onchange, z.b. ein neues fenster ofnnen lassen, mit mindestenz einem engabefeld, und nachdem der user ok klickt soll dieser eingegebene text im textarea erscheinen!
ich denke ich drücke mich ein wenig merkwürdig aus, abwer naja hoffe jemand hilft mir weil bei js hab ich gar keine leuchte!

danke im vorraus, seid mit hilfe hier ja echt zuverlässig!


----------



## Andreas Gaisbauer (12. Juni 2003)

Ich glaub ich hab dich schon verstanden . Schau dir mal das Beispiel an - ist eigentlich selbsterklärend...


```
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function edit(mode){
switch(mode){
   case "fett":
       txt = prompt("Bitte gib den fetten Text ein","");
       document.edit.text.value += ""+txt+"";
       document.edit.text.focus();
       break; 
   case "kursiv":
       txt = prompt("Bitte gib den kursiven Text ein","");
       document.edit.text.value += ""+txt+"";
       document.edit.text.focus();
       break;
   }
}
//-->
</script>

</head>
<body>
<form action="" name="edit">
<textarea rows="30" cols="50" name="text">
</textarea>
</form>
<a href="javascript:edit('fett');">Fett</a> | <a href="javascript:edit('kursiv');">Kursiv</a>  

</body>
</html>
```

@Thomas: Hoffe das deckt sich nicht mir deinem Code  - hab ihn nämlich nicht mehr im Kopf...


ciao

edit//bei den Links muss Java_script zusammengeschrieben werden - liegt am Forum das es Falsch angezeigt wird...

edit2// die Forumssoftware schrottet noch mehr im Code - ich häng ihn mal an - das File einfach in HTML umbennen...


----------



## Andreas Gaisbauer (12. Juni 2003)

Anhang


----------



## EraserOfEarth (13. Juni 2003)

Wie kann man das  mit Smilies machen? geht doch auch mit JavaScript oder?

Wäre nett wenn mir mal einer den code für ein smily schreiben kann


----------



## Andreas Gaisbauer (13. Juni 2003)

Hab dir ein Beispiel in den Anhang geladen - einfach in HTML umbenennen... Sollte eigentlich selbsterklärend sein, ansonsten einfach nachfragen...

ciao


----------



## EraserOfEarth (13. Juni 2003)

cool das funktioniert thx

wie muss ich denn die smilies interpretieren lassen, dass die dann auch als bild angezeigt werden??


----------



## THE REAL TOOLKIT (13. Juni 2003)

Dafür brauchst du eine serverseitige Sprache.
Wurde schon x-mal im PHP Forum besprochen.
Einfach mal suchen.


----------



## EraserOfEarth (13. Juni 2003)

ich arbeite ja sowieso mit PHP, aber ich werde da mal nachschaun


----------



## Andreas Gaisbauer (13. Juni 2003)

Wenn der User deinen Beitrag verfasst hat und das Formular abschickt, wird ja sehr wahrscheinlich ein Skript (wahrscheinlich PHP) aufgerufen. Dieses Skript bekommt natürlich den Text mitgeliefert. Mittels Regular Expressions muss der Text bearbeitet werden - ich Empfehle dir das mit den RegEx von PHP zu machen, da diese in Javascript ziemlich verkrüppelt sind... (Referenzen: http://www.php.net/manual/de/ref.pcre.php und http://www.php.net/manual/de/ref.regex.php). Mit diesen RegEx suchst du halt nach bestimmten Mustern wie ";-)" und lässt diese ersetzten mit z.B. <img src="bla.gif"> - und schon wird der Smiley angezeigt...

ciao

//edit: Ok - Toolkit war (wieder mal) schneller...


----------



## EraserOfEarth (13. Juni 2003)

hmm kappier ich ned was da steht, und wie ich das machen soll, kann mir einer nen kleines beispiel geben?


----------



## Andreas Gaisbauer (13. Juni 2003)

Was verstehst du nicht? Mein Posting oder das was sich hinter den Links verbirgt?


----------



## EraserOfEarth (14. Juni 2003)

wie das funktioniert, was da hinter den links steht und wie ich das umsetzen soll


----------



## Andreas Gaisbauer (14. Juni 2003)

Ja, Reguläre Ausdrücke sind eine Wissenschaft für sich - sehen unheimlich Kompliziert aus, sind aber mit das mächtigste was es gibt . Bei fragen zur Vorgehensweise und den richtigen Patterns bist du aber im PHP Forum besser aufgehoben (da sollte auch schon einiges dazu drinstehen) - ich persönlich brauch auch immer eine halbe Ewigkeit bis ich die Teile fehlerfrei zum Laufen bringe ...


ciao


----------



## xenon (15. Juni 2003)

aber im endeffekt läuft doch alles auf diese Regulären ausdrücke raus oder nicht? im endeffekt "erfindet" man doch nur neue tags, um die html tags zu ersetzten, um html ausschalten zu können!
es läuft also darauf hinaus, das ich für die dinge die ich haben will einfach ein bissal was erfinde und einen regulären ausdruck dafür definiere oder so, stimmt das oder liege ich falsch?


----------



## Andreas Gaisbauer (15. Juni 2003)

Ja, im Endeffekt schon...


----------



## xenon (19. Juni 2003)

das funktioniert bei mir nicht!
Also das mit den smileys iss kein problem. das geht aber was crono vorgeschlagen hat geht nicht! also jedenfalls nicht bei mir!


> PHP:--------------------------------------------------------------------------------
> <html>
> <head>
> <script language="JavaScript" type="text/javascript">
> ...



ich habe nun geschrieben:

```
function edit(mode)
{
switch(mode)
 {
 case "fett":
    txt = prompt("Bitte den fetten text eingeben","");
    document.msg.Content.value += ""+txt+"";
    document.msg.Content.Focus();
    break;
 case "kursiv":
    txt = prompt("geben sie den kursiven text ein","");
    document.msg.Content.value += ""+txt+"";
    document.msg.Content.focus();
    break;
 case "underline":
    txt = prompt("geben sie den unterstrichenen Text ein","");
    document.msg.Content.value += ""+txt+"";
    document.msg.Content.focus();
    break;
 }
}
```

und rufe das ganze mit 

```
<a href="javascript:edit('fett')">&nbsp;F&nbsp;</a>
```

auf! habe es auch mit nem strichpunkt hinter edit('fett') probiert geht auch nicht!
ich bekomme die fehler meldung:
Zeile:0
Fehler:Objekt erwartet

woran liegt das?


----------



## Andreas Gaisbauer (20. Juni 2003)

Sieht für mich danach aus, als ob du dein Formular nicht richtig ansprichst - könntest du bitte mal die ganze HTML Datei anhängen (oder zuminderst den Teil, indem du dein Formular definierst) - dann könnte ich es testen... Ich schätze der Fehler liegt irgendwo bei: "msg.Content" 

Noch ein Tipp: Nimm mal Mozilla zum testen her - dort gibt es eine "Javascript Console", die eindeutigere Fehlermeldungen bringt als der IE. 

ciao


----------



## xenon (22. Juni 2003)

habs in den griff bekommen, danke trotzdem, wegen den vielen hilfen.
war ein sehr dummer fehler, hatte im <head> halt <script .. src="..">!
aber das </script> hatte ich weggelassen...


----------

