Unschöne Funktionslösung verbessern?

Promaetheus

Mitglied
Ich habe auf meiner Seite eine Funktion mit der ich per Klick auf einen Button einen Text in einer Textarea einfügen lasse.
Nun habe ich jedoch bei einem Button den Sonderfall dass ich hier auch noch mittels prompt mitten in den Text an eine definierte Stelle das Eingegebene einfügen muss.

Ich habe das nun einfach mit einer zweiten Funktion gelöst. Unsauber ist jedoch dass ich hierfür eine 2. Funktion verwendet habe, was mich jedoch nicht SO stört. Was jedoch SEHR unschön ist, ist die Tatsache das ich die Prompt Eingabe nur an das Ende des übergebenen Textes gesetzt und dann manuell den Rest dazugeflickt habe. Wie könnte ich das lösen dass die Prompteingabe an einer bestimmten Stelle im Text eingefügt wird?

Hier meine Javascript Funktionen:
Code:
   function updateComment(obj,statusnum) {
			var textareas = document.getElementsByTagName('textarea');
			var myTextarea = textareas.item(0);
			if (myTextarea.value != '') {			
			myTextarea.value += '\n\n---<?php echo date("d-m-Y H:i:s"); ?>---\n' + obj;
			myTextarea.scrollTop=myTextarea.scrollHeight;
			}
			else {
			myTextarea.value = obj;
			}

			var selects = document.getElementsByTagName('select');
			var theSelect = selects.item(0);
			theSelect.selectedIndex = statusnum;
			
   }

    function updateCommentSave(obj,statusnum) {

      var ShippingID = prompt("Sendungsnummer:","");
      var textareas = document.getElementsByTagName('textarea');
      var myTextarea = textareas.item(0);
      myTextarea.value = obj + ShippingID + ' und hier folgt der restliche Text.';

      var selects = document.getElementsByTagName('select');
      var theSelect = selects.item(0);
      theSelect.selectedIndex = statusnum;

}

Und hier die Beispielaufrufe:
Code:
<button class="cbutton" onClick="updateComment('Der Standardtext','2');">Button Standard</button>&nbsp;
<button class="cbutton" onClick="updateCommentSave('Der erste Teil des Textes. Hier die Promteingabe: ','2');">Button mit Eingabe</button>
 
Das hatte ich mir auch schon gedacht. Kann man das nicht lösen indem man einen Platzhalter übergibt? Beispielsweise "Erster Teil {#} Zweiter Teil". und beim {#} wird ersetzt? Wie löst man sowas denn normalerweise? Sprich wenn eine Prompt Eingabe mitten in den Text gehört?
 
Naja... die Regenechsen war noch nie so wirklich meine freunde. hatte gerade an ereg_replace oder ähnliches gedacht. natürlich ist das mit str_replace auch locker möglich. Sieht man mal wieder wie tief das Grauen vor RegEx in mir sitzt. *lol*
 
Zurück