webmaster resource
+ Webmaster Forum von Webmaster-Resource.de » Webcoding » PHP (Moderatoren: Christian Felken, » тнє $υι¢ι∂є « ™)
|-+ Text in Eingabefeld einfügen
Username:
Password:

Seiten: [1]
Topic Tools  
Read 26. September 2007, 21:27:37 #0
hwp

Text in Eingabefeld einfügen

Hallo zusammen.

Ich habe folgendes Problem.

Ein Benutzer soll während der Eingabe eines Fliesstextes in ein Eingabefeld die Möglichkeit haben, per Klick auf einen Button an die aktuelle Cursor-Position/Markierung automatischen Text einfügen zu lassen.

Anwendungsfälle wären hier eine Auto-Text-Funktion bzw. Formatierungs-Tags.

Meine Frage dazu ist, wie bekomme ich den benötigten Text nun an die aktuelle Cursor-Position/Markierung im Eingabefeld?

Danke für eure Hilfe im Voraus!

Gruß!
Offline  
Read 26. September 2007, 22:12:33 #1
Zeus

Re: Text in Eingabefeld einfügen

da wäre eine interessante frage woher stammt der text Huch und 2ens glaube ich nciht das das nur mit php zu bewerkstelligen ist dafür ist aufjeden fall noch js notwendig

mfg


Gott ist Tod (Friedrich Nietzsche)
Offline  
Read 27. September 2007, 08:05:43 #2
Oetzi

Re: Text in Eingabefeld einfügen

Gehört wirklich eigentlich in JS-Forum vllt kanns ein Admin verschieben

Hier die entsprechende JS-Funktion:

Code:
function cur_ins(field, startTag, endTag, offset) {

    field.focus();

    if (document.getSelection) {

        selStart = field.selectionStart;
        selEnd = field.selectionEnd;
        text = field.value.substring(selStart, selEnd);
        field.value = field.value.substring(0, selStart) + startTag + text + endTag + field.value.substring(selEnd);

        if (text.length > 0) {
            if (offset != 0) {
                field.selectionStart = selStart + startTag.length + text.length - offset;
            } else {
                field.selectionStart = selStart + startTag.length + text.length + endTag.length;
            }
        } else {
            field.selectionStart = selStart + startTag.length;
        }

        field.selectionEnd = field.selectionStart;

    } else {

        if (document.selection) {

            marker = document.selection.createRange();
            text = marker.text;
            marker.text = startTag+text+endTag;
            marker = document.selection.createRange();

            if (text.length > 0) {

                if (offset != 0) {
                    marker.move('character', startTag.length + text.length - offset);
                } else {
                    marker.move('character', startTag.length + text.length + endTag.length + offset);
                }

            } else {
                marker.move('character', -(endTag.length));
            }

            marker.select();
        }
    }
}


Und ein paar Beispiele von aufrufen.

Code:
cur_ins(this.form.textarea, 'Vor Der Auswahl', 'Hinter der Auswahl', 0);
cur_ins(this.form.textarea, 'Vor Der Auswahl', '', 0);
cur_ins(this.form.textarea, '', 'Hinter der Auswahl', 0);


Sag niemals nie, es sei denn du meinst es ernst?

Johannes Ott
Webmaster My Tie - Rock&Pop Covers
Webmaster Jugendkirche Nürnberg
Offline  
Read 07. Oktober 2007, 20:55:31 #3
hwp

Re: Text in Eingabefeld einfügen

Hallo ihr zwei. Etwas verspätet melde ich mich zurück.
Danke für eure Rückmeldungen!

Also der Text soll zum einen html-Code sein, um Formatierungen durchzuführen und ein paar Auto-Text-Schnipsel, die je nach Umfang in Variablen im php- oder js-Script hinterlegt werden oder aus einer einfachen Text-Datei eingelesen werden sollen. Dies weiß ich dann auch wieder per php umzusetzen.

@ Oetzi:
Vielen Dank für deine fertige JS-Funktion!!! Echt klasse!

Kannst du mir evtl. noch ein paar kurze Kommentare zu dem Script machen? Ich habe bislang von JS keine Ahnung und würde es gerne auch verstehen. Danke
Offline  
Seiten: [1]
Gehe zu: