SQL-Werte vorformatiert in DB übergeben

bensky

Erfahrenes Mitglied
Morgen Leute, ich arbeite viel mit SQL und PHP.
Ich füge viel Text aus einem Formular in die Datenbank ein.
Nun suche ich noch ein kostenloses Script( javaS oder etc.) mit dem ich den Text Formatieren kann. Also wie dieses Fenster in das wir reinschreiben wenn wir hier posten. Am besten wo das script nicht direkt(wie in diesem forum) die formatierungs tag reinschreibt sonder im Hintergrund in ne var speichert oder so. Gibt es soetwas überhaupt und wenn schon vorgefertigt und wo ?
Danke im Voraus :p
 
Zuletzt bearbeitet:
Re: Sql werte vorformatiert in dB übergeben.

Bitte schoen. In functions.js sind die Funktionen die Du auf die Buttons legst, und in functions.php ist die Funktion replacetags() die das ganze wieder in HTML-Tags umwandelt.
By the way, die Form muss messageform heissen und die Textarea text, sonst geht das JavaScript nicht.

functions.js
Code:
function formattedtext(format)
{
formattext=prompt("Please enter the text to format.\n["+format+"]xxx[/"+format+"]","");
if ((formattext!="") && (formattext!=null))
	{
		document.messageform.text.value=document.messageform.text.value+"["+format+"]"+formattext+"[/"+format+"]";
	}
}

function urltext()
{
urldescription=prompt("Please enter a description for the URL (optional).","")
if (urldescription!=null)
	{
		url=prompt("Please enter the URL.","http://");
		if ((url!="") && (url!=null))
			{
				if (urldescription=="")
					{
						urldescription=url;
					}
				document.messageform.text.value=document.messageform.text.value+"[ url= "+url+"]"+urldescription+"[ /url ]";
			}
	}
}

function colortext(color)
{
formattext=prompt("Please enter the text to format.\nxxx","");
if ((formattext!="") && (formattext!=null))
	{
		document.messageform.text.value=document.messageform.text.value+""+formattext+"";
	}
}

functions.php
PHP:
<?php
function replacetags($messagetext)
{
while ((strpos($messagetext,"[ url= ")>-1) && (strpos($messagetext,"[ /url ]")>-1))
	{
		$startpos=strpos($messagetext,"[ url= ")+5;
		$endpos=strpos($messagetext,"]",$startpos);
		$url=substr($messagetext,$startpos,$endpos-$startpos);
		$startpos=$endpos+1;
		$endpos=strpos($messagetext,"[ /url ]",$startpos);
		$urltext=substr($messagetext,$startpos,$endpos-$startpos);
		$codestring='[ url= '.$url.']'.$urltext.'[ /url ]';
		$textstring='<a href="'.$url.'">'.$urltext.'</a>';
		$messagetext=str_replace($codestring,$textstring,$messagetext);
	}
while ((strpos($messagetext,"[ color= ")>-1) && (strpos($messagetext,"[ /color ]")>-1))
	{
		$startpos=strpos($messagetext,"[ color ]",$startpos);
		$color=substr($messagetext,$startpos,$endpos-$startpos);
		$startpos=$endpos+1;
		$endpos=strpos($messagetext,"[ /color ]",$startpos);
		$colortext=substr($messagetext,$startpos,$endpos-$startpos);
		$codestring='[ color ]'.$colortext.'[ /color ]';
		$textstring='<font color="'.$color.'">'.$colortext.'</font>';
		$messagetext=str_replace($codestring,$textstring,$messagetext);
	}
while ((strpos($messagetext,"[ b ]")>-1) && (strpos($messagetext,"[ /b ]")>-1))
	{
		$startpos=strpos($messagetext,"[ b ]")+3;
		$endpos=strpos($messagetext,"[ /b ]",$startpos);
		$text=substr($messagetext,$startpos,$endpos-$startpos);
		$codestring='[ b ]'.$text.'[ /b ]';
		$textstring='<b>'.$text.'</b>';
		$messagetext=str_replace($codestring,$textstring,$messagetext);
	}
while ((strpos($messagetext,"[ i ]")>-1) && (strpos($messagetext,"[ /i ]")>-1))
	{
		$startpos=strpos($messagetext,"[ i ]")+3;
		$endpos=strpos($messagetext,"[ /i ]",$startpos);
		$text=substr($messagetext,$startpos,$endpos-$startpos);
		$codestring='[ i ]'.$text.'[ /i ]';
		$textstring='<i>'.$text.'</i>';
		$messagetext=str_replace($codestring,$textstring,$messagetext);
	}
while ((strpos($messagetext,"[ u ]")>-1) && (strpos($messagetext,"[ /u ]")>-1))
	{
		$startpos=strpos($messagetext,"[ u ]")+3;
		$endpos=strpos($messagetext,"[ /u ]",$startpos);
		$text=substr($messagetext,$startpos,$endpos-$startpos);
		$codestring='[ u ]'.$text.'[ /u ]';
		$textstring='<u>'.$text.'</u>';
		$messagetext=str_replace($codestring,$textstring,$messagetext);
	}
while ((strpos($messagetext,"[ s ]")>-1) && (strpos($messagetext,"[ /s ]")>-1))
	{
		$startpos=strpos($messagetext,"[ s ]")+3;
		$endpos=strpos($messagetext,"[ /s ]",$startpos);
		$text=substr($messagetext,$startpos,$endpos-$startpos);
		$codestring='[ s ]'.$text.'[ /s ]';
		$textstring='<s>'.$text.'</s>';
		$messagetext=str_replace($codestring,$textstring,$messagetext);
	}
return $messagetext;
}
?>

Huch, wenn ich Deinen Text bis ganz zum Ende gelesen haette haette ich festgestellt, dass Du was zum in 'ner Variable arbeiten haben willst. Aber vielleicht helfen Dir meine beiden Scripts trotzdem was weiter.
 
Zuletzt bearbeitet:
Re: Sql werte vorformatiert in dB übergeben.

Na klar helfen die mir schonmal! Vielen Dank. Vielleicht weiß ja noch jemand wie es auch mir $var's geht. Gibt es denn soetwas schon fertig wo die buttons und color knöpfe etc schon angezeigt sind?
 
Zuletzt bearbeitet:
Re: Sql werte vorformatiert in dB übergeben.

Hab dein script mal getestet hab aber kein plan wie ich es einsetzten soll? was muss ich machen :(
 
Re: Sql werte vorformatiert in dB übergeben.

Hier mal ein kleines Script um die Funktion zu demonstrieren und ein wenig zu erklaeren:
PHP:
<html>
<head>
<script src="functions.js" type="text/javascript"></script>
</head>
<body>
<?php
$submit=$_POST["submit"];
if ($submit)
	{
		include("functions.php");
		$text=$_POST["text"];
		$text=htmlentities($text);
		$text=replacetags($text);
		$text=nl2br($text);
		printf("%s<hr>",$text);
	}
?>
<form name="messageform" method="post" action="formattext.php">
<button type="button" name="bold" value="bold" onclick="javascript:formattedtext('b');"><b>B</b></button>
<button type="button" name="italic" value="italic" onclick="javascript:formattedtext('i');"><i>I</i></button>
<button type="button" name="underline" value="underline" onclick="javascript:formattedtext('u');"><u>U</u></button>
<button type="button" name="strikeout" value="strikeout" onclick="javascript:formattedtext('s');"><s>S</s></button>
<button type="button" name="url" value="url" onclick="javascript:urltext();">URL</button>
<button type="button" name="red" value="red" onclick="javascript:colortext('#ff0000');"><font color="#ff0000">R</font></button>
<button type="button" name="green" value="green" onclick="javascript:colortext('#00ff00');"><font color="#00ff00">G</font></button>
<button type="button" name="blue" value="blue" onclick="javascript:colortext('#0000ff');"><font color="#0000ff">B</font></button>
<br>
<textarea name="text" cols="40" rows="5"></textarea>
<br>
<input type="submit" name="submit" value="Go!">
</form>
</body>
</html>
Dieses Script nutzt die von mir zuvor geposteten Scripts functions.js und functions.php.
Wichtig ist, dass die im <form>-Tag auch name="messageform" angegeben wird and im <textarea>-Tag name="text", sonst funktioniert der JavaScript-Part, also die Buttons nicht.
Wenn Du dann Text eingegeben hast und absendest wird er entsprechend verarbeitet. Man haette das auch alles zusammenfassen koennen, jedoch dachte ich mir ist's so einfacher zu erklaeren.
PHP:
$text=htmlentities($text);
htmlentities() "entschaerft" alle HTML-Tags im Text, sodass eingegebener HTML-Code einfach auf dem Bildschirm dargestellt wird und nicht interpretiert wird.
PHP:
$text=replacetags($text);
replacetags() ist keine PHP-eigene Funktion, sondern die Funktion die aus der functions.php importiert wird, diese uebersetzt die Pseudo-Tags in echte HTML-Tags.
PHP:
$text=nl2br($text);
nl2br() sorgt dann vor der Ausgabe noch dafuer, dass auch die in der Textarea gemachten Zeilenumbrueche richtig dargestellt werden.

Damit Du nicht alles per Copy&Paste rausziehen musst hab ich die Scripts und das Demo-Script mal zusammengepackt und als ZIP angehaengt.
 

Anhänge

Zuletzt bearbeitet:
Re: Sql werte vorformatiert in dB übergeben.

Ja guten Morgen oder soll ich lieber sagen guten Mittag :-),

hmm ich habe das gerade alles mal gelesen und ich wollte dich fragen ob ich das auch haben kann, denn das ist echt gut, dass man das dann einfach nur anklicken muss und dann z.B. der Text FETT ist :-)

Bin mal auf deine Antwort gespannt.

Gruß jaylibII
 
Re: Sql werte vorformatiert in dB übergeben.

Mahlzeit,
Klar kannst Du das auch haben. Wenn ich was dagegen haette dass andere Leute meinen Code nutzen haette ich wohl kaum den Source hier gepostet geschweigedenn als praktisches, kleines ZIP hier hochgeladen.

Da ich klarer Verfechter von OpenSource und OpenKnowledge stelle ich gern anderen mein Wissen, egal ob in Form von Informationen oder SourceCode, zur Verfuegung.
 
Re: Sql werte vorformatiert in dB übergeben.

Mahlzeit,

danke danke danke! Dann kann ich ja heute Abend schon wieder ein Update machen :-)

Gruß jaylibII
 
Re: Sql werte vorformatiert in dB übergeben.

Hallo.
hab dazu auch noch eine Frage. Wie kann man das dann so machen, dass der Text, wenn er schon geschrieben ist, nur markiert werden muss und dann auf den Button klicken, damit er die Formatierung annimmt. So wie hier im Forum mit dem PHP-Code Button!

mb fanste
 
Zurück