SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 14.01.2004, 13:41   #1
TP-Senior
 
Registriert seit: Oct 2002
Ort: Steinach
maffy macht alles soweit korrekt

Formular mit BBCode


Wie funktioniert das mit den BBCODE Buttons in Formularen wie z.B. hier im Forum.

Es gibt zwar zahlreich Tutorials für BBCODE aber nirgens wird erklärt wie mann das in ein Formular einbaut.

Wie funktioniert es, dass er wenn man auf ein Button klickt das [b] auch im Text erscheint.
maffy ist offline   Mit Zitat antworten


Alt 14.01.2004, 14:45   #2
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Du fragst den mit den UBB-Code-Tags zu umschliessenden Text einfach per Javascript ab und fügst das Konstrukt dann in Dein Eingabefeld (oder was auch immer) ein:

Code:
<script language="Javascript">
<!--
function ubbBeispiel()
{
	with(document.forms[0].beispiel)
	{
		var string = prompt('Bitte Text eingeben:');
		value += ' ' + '[ b ]' + string + '[ /b ]';
		focus();
	}
}
-->
</script>

<form>
<textarea name="beispiel"></textarea>
<input type="button" onClick="ubbBeispiel()">
</form>
Weitere Möglichkeiten zur Formatierung, eine Überprüfung der Eingabe oder ähnliche Features lassen sich dann leicht in die gezeigte Funktion einbauen.

P.S. Die Leerzeichen bei [ b ] und [ /b ] haben keinen tieferen Sinn -- ohne würde sie das Forum aber verschlucken.
__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 15.01.2004, 12:48   #3
TP-Senior
 
Registriert seit: Oct 2002
Ort: Steinach
maffy macht alles soweit korrekt
Gibt es eigendlich auser den Namen einen Unterschied zwischen VB Code, BBCode UB Code ec. .

Geändert von maffy (15.01.2004 um 12:51 Uhr).
maffy ist offline   Mit Zitat antworten
Alt 15.01.2004, 13:15   #4
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Nein.
__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 15.01.2004, 18:55   #5
TP-Senior
 
Registriert seit: Oct 2002
Ort: Steinach
maffy macht alles soweit korrekt
Na gut, dann werde ich mir mal ein Formular basteln.

Eine Frage noch, kann ich das ganze auch mit den ganzen Tabellen Tags <table> <tr> <th> ec. machen um z.B. Newsbeiträge in Spaltensatz zu Formatieren.

Oder ist das nicht sinnvoll

MFG Maffy
maffy ist offline   Mit Zitat antworten
Alt 15.01.2004, 20:24   #6
TP-Senior
 
Registriert seit: Oct 2002
Ort: Steinach
maffy macht alles soweit korrekt
Habe das jetzt mal in mein Formular eingebaut es kommt aber eine Fehler Meldung wenn auf einen Button klicke.

Code:
<?php
   
  include("inc/mysqldb.php");
  include("inc/session.php");

  if ($newsid)
  {
    $db->query("select newsid,autor,header,datum,email,news 
				FROM mr73_news where newsid=$newsid");
			    list($newsid,$autor,$header,$datum,$email,$news) = $db->data();
  }


?><html>
<head>
<title>Administratorbereich News Bearbeiten</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="Javascript">
<!--
//########### Text FETT  ########################
function fett()
{
	with(document.forms[0].news)
	{
		var string = prompt("Text der FETT formatiert werden soll:","");
		value += " " + "<b>" + string + "</b>";
		focus();
	}
}

//########### Text Unterstrichen  ########################
function unterstrichen()
{
	with(document.forms[0].news)
	{
		var string = prompt("Text der Unterstrichen formatiert werden soll:","");
		value += " " + "<u>" + string + "</u>";
		focus();
	}
}

//########### Text Kursiv  ########################
function italic()
{
	with(document.forms[0].news)
	{
		var string = prompt("Text der KURSIV formatiert werden soll:","");
		value += " " + "<i>" + string + "</i>";
		focus();
	}
}

//########### URL einfügen ########################
function url()
{
	with(document.forms[0].news)
	{
		linktext = prompt("Titel des Links:","");
		linkurl = prompt("URL des Links:","http://");
		value += " " + "<a href=\""+linkurl+"\">"+linktext+"</a> ";
		focus();
	}
}


-->
</script>
<link rel="stylesheet" href="studio73.css" type="text/css">
</head>

<body bgcolor="#FFFFFF" text="#000000">


<table width="100%" border="0" cellspacing="1" cellpadding="5" class="t2">
  <tr> 
    <td> 
      <table width="100%" border="0" cellspacing="2" cellpadding="2" align="center" class="t5" bgcolor="#CCCCCC">
        <tr> 
          <td bgcolor="#CCCCCC"> 
            <table width="100%" border="0" cellspacing="0" cellpadding="0" class="forumline">
              <tr> 
                <td> 
                  <table width="95%" border="0" cellspacing="1" cellpadding="2" class="genh1" bgcolor="#CCCCCC">
                    <tr> 
                      <td bgcolor="#FFFFFF" background="../images/bkgn1.gif"> 
                        <div align="center"> ++ News Erstellen und Bearbeiten 
                          ++</div>
                      </td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr> 
    <td> 
      <table width="100%" border="0" cellspacing="2" cellpadding="5" align="center">
        <tr> 
          <td width="100%" bgcolor="#FFFFFF" valign="top"> 
            <table width="95%" border="0" cellspacing="2" cellpadding="5" align="center" bgcolor="#FFFFFF" class="t4">
              <tr> 
                <td> 
                  <form action="news_change.php" method="post">
                    <table border cellpadding="5" align="center" class="t4" cellspacing="1">
                      <tr> 
                        <th colspan="2">News erstellen / bearbeiten </th>
                      </tr>
                      <tr> 
                        <td align="right">Header</td>
                        <td> 
                          <input type="text" name="header" value="<?php echo($header);?>">
                        </td>
                      </tr>
                      <tr> 
                        <td align="right">Datum</td>
                        <td> 
                          <input type="text" name="datum" value="<?php echo($datum);?>">
                          Format: YYYY-MM-DD </td>
                      </tr>
                      <tr> 
                        <td align="right">Autor</td>
                        <td> 
                          <input type="text" name="autor" value="<?php echo($autor);?>">
                        </td>
                      </tr>
                      <tr> 
                        <td align="right">EMail</td>
                        <td> 
                          <input type="text" name="email" value="<?php echo($email);?>">
                        </td>
                      </tr>
                      <tr>
                        <td align="right">HTML Formate:</td>
                        <td class="gen"> 
                          <input type="button" onClick="fett(0)" value="< B >" name="B">
                          <input type="button" onClick="unterstrichen(0)" value="< U >" name="U">
                          <input type="button" onClick="italic(0)" value="< I >" name="I">
                          <input type="button" onClick="italic(0)" value="< URL >" name="URL">
                        </td>
                      </tr>
                      <tr> 
                        <td align="right">News</td>
                        <td> 
                          <textarea name="news" cols="50" rows="10"><?php echo($news);?></textarea>
                        </td>
                      </tr>
                      <tr> 
                        <td colspan="2"> 
                          <div align="center"> 
                            <input type="submit" value="News erstellen / bearbeiten" name="submit">
                          </div>
                        </td>
                      </tr>
                    </table>
                    <input type="hidden" name="newsid" value="<?php echo($newsid);?>">
                  </form>
                </td>
              </tr>
              <tr> 
                <td bgcolor="#FFFFFF"> 
                  <div align="center"><a href="news_index.php" class="menü">&laquo; 
                    zur&uuml;ck zur News&uuml;bersicht &raquo;</a></div>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr> 
    <td height="20"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="t2">
        <tr> 
          <td> 
            <div align="center"><b class="copyright">www.mr-73.de &copy; 2000 
              - 2003 By Matthias Reichert</b></div>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

</body>
</html>
maffy ist offline   Mit Zitat antworten
Alt 16.01.2004, 09:29   #7
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Zitat:
Original geschrieben von maffy
es kommt aber eine Fehler Meldung wenn auf einen Button klicke.
Und was sagt die so?
__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 16.01.2004, 14:31   #8
TP-Senior
 
Registriert seit: Oct 2002
Ort: Steinach
maffy macht alles soweit korrekt
Wenn ich einen Button klicke um z.B. <B> einzufügen, tut er das B zum einen nicht in der Textbox ausgeben und unten erscheint ein Ausrufezeichen und der Text Fehler auf der Seite.

Mehr passiert nicht.
maffy ist offline   Mit Zitat antworten
Alt 16.01.2004, 14:35   #9
TP-Senior
 
Registriert seit: Oct 2002
Ort: Steinach
maffy macht alles soweit korrekt
was ich noch vergessen habe, wenn ich das ganze in einem ganz normalen Formular teste Funktioniert das ohne Probleme.
maffy ist offline   Mit Zitat antworten
Alt 16.01.2004, 15:29   #10
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
Wo, wenn nicht innerhalb eines Formulars, versuchst Du denn, das Ganze einzubauen?
__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 16.01.2004, 16:01   #11
TP-Senior
 
Registriert seit: Oct 2002
Ort: Steinach
maffy macht alles soweit korrekt
Schau dir mal den obigen Code im ersten Beitrag hier an.

So schaut mein Formular aus.
maffy ist offline   Mit Zitat antworten
Alt 31.12.2004, 11:25   #12
TP-Junior
 
Registriert seit: Dec 2004
Ort: köln
billkill macht alles soweit korrekt
Genau das Problem hab ich auch.
In ner Test-HTML funktioniert das alles schön.
Aber dann in der PHP gehts net mehr.

Hier der Code
PHP-Code:
<script language="Javascript">
<!--
function 
bbcode_bold()
{
    
with(document.forms[0].text)
    {
        var 
string prompt("Bitte Text eingeben:");
        
value += " " "[b]" string "[/b]";
        
focus();
    }
}
function 
bbcode_italic()
{
    
with(document.forms[0].text)
    {
        var 
string prompt("Bitte Text eingeben:");
        
value += " " "[i]" string "[/i]";
        
focus();
    }
}
function 
bbcode_underline()
{
    
with(document.forms[0].text)
    {
        var 
string prompt("Bitte Text eingeben:");
        
value += " " "[u]" string "[/u]";
        
focus();
    }
}
function 
bbcode_quote()
{
    
with(document.forms[0].text)
    {
        var 
string prompt("Bitte Text eingeben:");
        
value += " " "[quote]" string "[/quote]";
        
focus();
    }
}
function 
bbcode_url()
{
    
with(document.forms[0].text)
    {
        var 
string prompt("Bitte Text eingeben:");
        
value += " " "[url]" string "[/url]";
        
focus();
    }
}
function 
bbcode_img()
{
    
with(document.forms[0].text)
    {
        var 
string prompt("Bitte Text eingeben:");
        
value += " " "[img]" string "[/img]";
        
focus();
    }
}
function 
bbcode_code()
{
    
with(document.forms[0].text)
    {
        var 
string prompt("Bitte Text eingeben:");
        
value += " " "[code]" string "[/code]";
        
focus();
    }
}
-->
</script>


<table border="0" width="700" id="table1" cellspacing="0" cellpadding="0">
    <tr>
        <td><img border="0" src="redesign/td/mail_new.gif" width="700" height="18"></td>
    </tr>
    <tr>
        <td style="border-left: 1px solid #9F9FA1; border-right: 1px solid #9F9FA1; border-top-width: 1px; border-bottom: 1px solid #9F9FA1" background="redesign/td_bg.png">
        <table border="0" width="100%" id="table2" cellspacing="5" cellpadding="5" height="110">
            <tr>
                <td>
<form action="mail.php?a=sendmail&amp;sid='.$sid.'" method="post" name="newmail">
<table width="400px" cellspacing="3" cellpadding="5">
<tr>
<th align="right">Empf&auml;nger:</th>
<td><input name="recipient" type="text" value="'.$recip.'" /></td>
</tr>
'.$bigacc.'
<tr id="messages-compose-subject">
<th align="right">Betreff:</th>
<td><input name="subject" type="text" value="'.$subject.'" /></td>
</tr>
<tr id="messages-compose-text">
<th align="right" valign="top">Text:</th>
<td><input type="button" onClick="bbcode_bold()" value="  B  ">
<textarea name="text"  cols="60" rows="10">'.$text.'</textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Absenden" /></td>
</tr>
</table>
</form>
</td>
            </tr>
        </table>
        </td>
    </tr>
</table> 
billkill ist offline   Mit Zitat antworten
Alt 31.12.2004, 14:58   #13
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Php ist eine serverseitige Skriptsprache. Das heißt, der Server berechnet den "Code" und gibt das Ergebnis wieder aus. Weder HTML noch JavaScript sind PHP Code - in anderen Worten - er berechnet es garnicht sondern gibt den Text wieder aus.

In noch anderen Worten: Es muss laufen

Du musst lediglich aufpassen, dass du das JavaScripts Zeug nicht im PHP Code reinpackst!

PHP-Code:
<?php
//Hier beginnt php code

//..

//Hier endet er
?>
Hier könntest du jetzt html oder java ausgeben
<?php
//Hier beginnt php wieder
...
?>
und so weiter
__________________
Zwei Dinge sind Unbestreitbar:
  • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
  • Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 31.12.2004, 15:24   #14
TP-Supporter
 
Benutzerbild von urban-a
 
Registriert seit: May 2004
Ort: Wien
urban-a ist auf einem guten Weg
wenn du so ein formular machen musst gibt es eine total einfache befehlssammlung von microsoft:

http://msdn.microsoft.com/library/de...commandids.asp

und hier einbeispiel forumular (hab es kommentiert hoffe du kennst dich aus )

PHP-Code:
<html>
<
head>
<
title>formular zum formatieren</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
link rel="stylesheet" href="../style.css" type="text/css">
/*mit diesem kleinen script wird der formatierte text in ein hiddenfeld übergeben damit es nachher bearbeitet werden kann zb von php, denn dadurch werden eben auch die tags zb <b> übergeben*/
<script language="JavaScript">
<!--
function 
transfer()
{
document.forms[0].text_fertig.value document.all.inner.innerHTML;
}
//-->
</script>
/*Wir arbeiten mit verschachtelten layers im formular hier nur die styls*/
<style type='text/css'>
                #outer
                        {
                                font-family:verdana,helvetica,arial,sans-serif;
                                font-size:11px;
                                font-weight:800;
                                color:#232323;
                                background:white;
                                border:inset black solid 1 #000000;
                                padding:10;
                                height:300;
                                width:400;
                        }

                #inner
                        {
                                font-family:verdana,helvetica,arial,sans-serif;
                                font-size:11px;
                                font-weight:400;
                                color:#232323;
                                background:white;
                                border:inset black solid 1 #000000;
                                padding:3;
                                overflow:auto;
                                text-align:left;
                                height:250;
                                width:350;
                        }
        #button {  font-family: Verdana, Arial, Helvetica, sans-serif;
                           font-size: 11px;
                           background-color: #FFFFFF;
                           border:inset black solid 1;
                           padding:3;
                           }
.text {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; color: #000000}
</style>
</head>

<body bgcolor="#FFFFFF" text="#000000" class="text">
<h1>Eine neue Aktion eingeben </h1>
<p>
/*das  formular*/
<form action="dein.doc" method="post" onsubmit="transfer();">
<p><div class="text">Titel der Aktion:</div><input type="text" name="titel"><p>
/*hier der erste layer mit den buttons die unsere execCommandsenthalten
wichticht unselectable 'on'*/
                <div id="outer" unselectable='on' align="center">
//das ist der "innere layer" wo der text eingegeben und formatiert wird
                         <div id="inner" contenteditable>
                        </div>
                        <br>
/*und das sind die execcommands die denn markierten text formatieren
die übersicht was alles möglich ist bei obigen url*/
                        <button id="button" onClick="document.execCommand('bold'); inner.focus();" unselectable='on'><strong>Fett</strong></button>
                        <button id="button" onclick="document.execCommand('italic'); inner.focus();" unselectable='on'><em>Kursiv</em></button>
                        <button id="button" onclick="document.execCommand('CreateLink'); inner.focus();" unselectable='on'>Link</button>
/*hier das hidden feld in das der text übertragen wird*/
                    <input type="hidden" name="text_fertig">
                        <input type="submit" name="speichern" value="Speichern">
                </div>
              </div>
                </form>
</body>
</html> 
__________________
Na endlich!
urban-a ist offline   Mit Zitat antworten
Alt 31.12.2004, 15:47   #15
TP-Junior
 
Registriert seit: Dec 2004
Ort: köln
billkill macht alles soweit korrekt
Wenn ich das JavaScript aus dem PHP Echo rausnehme geht es leider auch nicht.

Sie dann so aus
PHP-Code:
'; ?>
<script language="Javascript">
<!--
function bbcode_bold()
{
    with(document.forms[0].text)
    {
        var string = prompt("Bitte Text eingeben:");
        value += " " + "[b]" + string + "[/b]";
        focus();
    }
}
function bbcode_italic()
{
    with(document.forms[0].text)
    {
        var string = prompt("Bitte Text eingeben:");
        value += " " + "[i]" + string + "[/i]";
        focus();
    }
}
function bbcode_underline()
{
    with(document.forms[0].text)
    {
        var string = prompt("Bitte Text eingeben:");
        value += " " + "[u]" + string + "[/u]";
        focus();
    }
}
function bbcode_quote()
{
    with(document.forms[0].text)
    {
        var string = prompt("Bitte Text eingeben:");
        value += " " + "[quote]" + string + "[/quote]";
        focus();
    }
}
function bbcode_url()
{
    with(document.forms[0].text)
    {
        var string = prompt("Bitte Text eingeben:");
        value += " " + "[url]" + string + "[/url]";
        focus();
    }
}
function bbcode_img()
{
    with(document.forms[0].text)
    {
        var string = prompt("Bitte Text eingeben:");
        value += " " + "[img]" + string + "[/img]";
        focus();
    }
}
function bbcode_code()
{
    with(document.forms[0].text)
    {
        var string = prompt("Bitte Text eingeben:");
        value += " " + "[code]" + string + "[/code]";
        focus();
    }
}
-->
</script>
<?php
echo'
<table border="0" width="700" id="table1" cellspacing="0" cellpadding="0">
    <tr>
        <td><img border="0" src="redesign/td/mail_new.gif" width="700" height="18"></td>
    </tr>
    <tr>
        <td style="border-left: 1px solid #9F9FA1; border-right: 1px solid #9F9FA1; border-top-width: 1px; border-bottom: 1px solid #9F9FA1" background="redesign/td_bg.png">
        <table border="0" width="100%" id="table2" cellspacing="5" cellpadding="5" height="110">
            <tr>
                <td>
<form action="mail.php?a=sendmail&amp;sid='
.$sid.'" method="post" name="newmail">
<table width="400px" cellspacing="3" cellpadding="5">
<tr>
<th align="right">Empf&auml;nger:</th>
<td><input name="recipient" type="text" value="'
.$recip.'" /></td>
</tr>
'
.$bigacc.'
<tr id="messages-compose-subject">
<th align="right">Betreff:</th>
<td><input name="subject" type="text" value="'
.$subject.'" /></td>
</tr>
<tr id="messages-compose-text">
<th align="right" valign="top">Text:</th>
<td>
<input type="button" onClick="bbcode_bold()" value="  B  ">
<textarea name="text"  cols="60" rows="10">'
.$text.</textarea></td>
</
tr>
<
tr>
<
td colspan="2" align="center"><input type="submit" value="Absenden" /></td>
</
tr>
</
table>
</
form>
</
td>
            </
tr>
        </
table>
        </
td>
    </
tr>
</
table>
billkill ist offline   Mit Zitat antworten