Einzelnen Beitrag anzeigen
  #8  
Alt 04.08.2011, 08:56:03
TeX TeX ist offline
Anfänger
 
Registriert seit: Sep 2008
Ort: Saalfeld
Alter: 46
Beiträge: 51
TeX eine Nachricht über ICQ schicken
AW: Neuer Beitrag oder nicht Problem

Du solltest Dich erstmal mit den Grundsachen von JS beschäftigen bevor Du Dich an solche Sachen wagst. Der zugeschickte Code ($_POST) muß noch gecheckt werden (SQL-injection etc.).

HTML-Code:
<?php

if(!empty($_POST['s']) && !empty($_POST['ta'])){
	
	$text=$_POST['ta'];
	
	$form_array['[b]']='<strong>';
	$form_array['[/b]']='</strong>';
	$form_array['[i]']='<i>';
	$form_array['[/i]']='</i>';
	$form_array['[u]']='<u>';
	$form_array['[/u]']='</u>';
	
	foreach($form_array as $k => $w){
		$text=str_replace($k,$w,$text);
	}
	
	# weiterverarbeitung der Variablen (z.B. auf bösen Code checken etc.)
	echo nl2br($text).'<hr />';
	$ta=$_POST['ta'];
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>test</title>
		
		<script type="text/javascript">
		<!--
		function insert(aTag, eTag, eID) {
			var input = document.getElementById(eID);
			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 */
		
		}
		//-->
		</script>
		
	</head>
	
	<body>
		
		<form method="POST">	
		<input type="button" value="B" onClick="insert('[b]', '[/b]', 'ta')" />
		<input type="button" value="I" onClick="insert('[i]', '[/i]', 'ta')" />
		<input type="button" value="U" onClick="insert('[u]', '[/u]', 'ta')" /><br />
		<textarea id="ta" name="ta" style="width:500px;height:300px;"><?php if(!empty($ta)){echo $ta;}?></textarea>
		<br />
		<input type="submit" name="s" value="speichern" />
		</form>
	</body>
</html>
Mit Zitat antworten