Hi Leute!
Also ich hab ewig versucht ein Script zu finden mit dem man einen BBcode in ein Textfeld einfügen kann! Letztendlich hab ich auch beinahe das Richtige gefunden (auf selfHTML, nur zu empfehlen, für alle die noch suchen)! Leider wars das nur beinahe!
Ich hab ein Formular mit dem man dynamisch Textfelder hinzufügen kann! Nun will ich das man den BBcode jeweils in das letzte ausgewählte Feld einfügen kann! Ich weiß sowas in der Art hatte ich schon mal gefragt und auch versucht an diesem Beispiel anzuwenden, nur leider komplett ohne Erfolg! Entweder erhalte ich verschiedenste Fehlermeldungen oder es passiert einfach gar nichts.
hier die Funktion:
und hier der Ausschnitt aus dem Formular:
und noch das Script zum erweitern des Formulars:
Was muss ich bei diesen beiden Zeilen
ändern damit das auf meine Suituation passt?
Übrigens, die Duplikate vom Textfeld "add1" heißen "add2" "add3" usw. (für alle die sich den Code zum erweitern nicht durchsehen wollen)
Bitte helft mir.
greetz
nero
PS.: das Script für den BBcode ist bei mir momentan so! d.h.: Er funktioniert, jedoch nur im ersten Textfeld (logischerweise).
Also ich hab ewig versucht ein Script zu finden mit dem man einen BBcode in ein Textfeld einfügen kann! Letztendlich hab ich auch beinahe das Richtige gefunden (auf selfHTML, nur zu empfehlen, für alle die noch suchen)! Leider wars das nur beinahe!
Ich hab ein Formular mit dem man dynamisch Textfelder hinzufügen kann! Nun will ich das man den BBcode jeweils in das letzte ausgewählte Feld einfügen kann! Ich weiß sowas in der Art hatte ich schon mal gefragt und auch versucht an diesem Beispiel anzuwenden, nur leider komplett ohne Erfolg! Entweder erhalte ich verschiedenste Fehlermeldungen oder es passiert einfach gar nichts.
hier die Funktion:
PHP:
<script type="text/javascript">
<!--
function insert(aTag, eTag) {
var input = document.forms['this'].elements['add1'];
input.focus();
/* für Internet Explorer */
if(typeof document.selection != 'undefined') {
/* Einfügen des Formatierungscodes */
var range = document.selection.createRange();
var insText = range.text;
range.text = aTag + insText + eTag;
/* Anpassen der Cursorposition */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -eTag.length);
} else {
range.moveStart('character', aTag.length + insText.length + eTag.length);
}
range.select();
}
/* für neuere auf Gecko basierende Browser */
else if(typeof input.selectionStart != 'undefined')
{
/* Einfügen des Formatierungscodes */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
/* Anpassen der Cursorposition */
var pos;
if (insText.length == 0) {
pos = start + aTag.length;
} else {
pos = start + aTag.length + insText.length + eTag.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
/* für die übrigen Browser */
else
{
/* Abfrage der Einfügeposition */
var pos;
var re = new RegExp('^[0-9]{0,3}$');
while(!re.test(pos)) {
pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
}
if(pos > input.value.length) {
pos = input.value.length;
}
/* Einfügen des Formatierungscodes */
var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
}
}
//-->
</script>
und hier der Ausschnitt aus dem Formular:
HTML:
<form name="this" method="post" action="auswerten.php">
<table id="tab">
<tr>
<td>
<input type="text" name="add1">
</td>
</tr>
</table>
<input type="button" value="+" onClick="clone_this()">
<input type="button" value="BBcode" onClick="insert('{code}','{/code}')"></form>
und noch das Script zum erweitern des Formulars:
PHP:
function clone_this(){
NewRow = document.getElementById('tab').lastChild.cloneNode(true);
document.getElementById('tab').appendChild(NewRow);
var i = document.getElementById('tab').childNodes.length;
for(j=0;j<document.getElementById('tab').lastChild.getElementsByTagName('input').length;j++){
if(j == 0){
var spalte = 'add';
}
else if(j == 1){
var spalte = 'data';
}
var newname = spalte + i;
document.getElementById('tab').lastChild.getElementsByTagName('input')[j].setAttribute('name', newname);
//var name = document.getElementById('tabdim').lastChild.getElementsByTagName('input')[j].name;
document.getElementById('tab').lastChild.getElementsByTagName('input')[j].value='';
document.getElementById('zeilen').setAttribute('value', i);
}
}
Was muss ich bei diesen beiden Zeilen
PHP:
var input = document.forms['this'].elements['add1'];
input.focus();
ändern damit das auf meine Suituation passt?
Übrigens, die Duplikate vom Textfeld "add1" heißen "add2" "add3" usw. (für alle die sich den Code zum erweitern nicht durchsehen wollen)
Bitte helft mir.
greetz
nero
PS.: das Script für den BBcode ist bei mir momentan so! d.h.: Er funktioniert, jedoch nur im ersten Textfeld (logischerweise).
Zuletzt bearbeitet: