Ergebnis 1 bis 17 von 17

Thema: [JS]Probs mit BB-Codes

  1. #1

    [JS]Probs mit BB-Codes

    Hi leutz. ich will für die contenterstellung meines CMS BB-Codes bereitstellen. Hab folgendes fertig gemacht:

    HTML-Code:
    			<html>
    			<head>
    			<script language='JavaScript'>
    			var parm1;
    			var inserttext;
    			var bbcode;
    			function insert('bbcode')
    				{
    				parm1=prompt("Geben Sie den zu Formatierenden Text ein!<br>["+bbcode+"]xxx[/"+bbcode+"]","");
    				inserttext="["+bbcode+"]"+parm1+"[/"+bbcode+"]";
    				document.formular.nachricht.value = document.formular.nachricht.value + ' ' + inserttext;
    			</script>
    			</head>
    			<body>
    			<form action='content_neu_allg_3.php' method='POST' name='formular'>
    			<b>Titel:</b><br>
    			<input type="text" name="titel"><br>
    			<br>
    			<br>
    			<table border"0">
    				<tr>
    					<td align="right"><textarea name='nachricht' style='height:160px; width:160px;'></textarea></td>
    					<td align="left" valign="top"><a href='javascript:insert("B");'><img src='images/bbcode_bold.gif' border='0'></a></td>
    				</tr>
    			</table>
    			</form>
    			</body>
    			</html>
    Nun, das Prob, es funtzt net. es wird nicht einmal das fenster aufgerufen, in dem mann eigentlich des zu foratierenden text eigeben kann. Plz help me

    mfg Borky

  2. #2
    Probier mal onClick="" des Linkes anzusteuern.

  3. #3
    Oder schließ erstmal die geschwungene Klammer der insert-Funktion.

  4. #4
    hat beides nicht viel gebracht, um genau zu sein, gar nix.
    jetzt ne frage am rande, macht es was, wenn sich der teil innerhalb eines php-gerüsts befindet?
    der complette code sieht so aus:
    PHP-Code:
    <?php
    session_start
    ();
    include(
    "db-connect.php");

    if (
    $_SESSION['logcode'] == "???*")
        {
        if (
    $_SESSION['user-group'] == 3)
            {
                
    //Content neu allg 2: Contennterstellung
                
    ?>
                <html>
                <head>
                <script language='JavaScript' type="text/javascript">
                    function insert (bbcode) {
                      var parm = window.prompt("Bitte den zu formatierenden Text eingeben!<br>["+bbcode+"]xxx[/"+bbcode+"]", "");
                      var inserttext = "["+bbcode+"]"+parm+"[/"+bbcode+"]";
                      document.formular.message.value = document.formular.message.value + ' ' + inserttext;;
                      }
                </script>
                </head>
                <body>
                <form action='content_neu_allg_3.php' method='POST' name='formular'>
                <b>Titel:</b><br>
                <input type="text" name="titel"><br>
                <br>
                <br>
                <table border"0">
                    <tr>
                        <td align="right"><textarea name='message' style='height:160px; width:160px;'></textarea></td>
                        <td align="left" valign="top"><a href="javascript:insert(B)" onclick="javascript:insert(B)"><img src='images/bbcode_bold.gif' border='0'></a></td>
                    </tr>
                </table>
                </form>
                </body>
                </html>
                <?PHP
            
    }
        else
            {
            echo 
    "Sie haben nicht die nötigen berechtigungen für diesen Teil der Seite. Bitte kehren sie zu startseite zurück!";
            }
        }
    else
        {
        echo 
    "Sie sind nicht eingeloggt. Bitte kehren Sie zur Startseite zurück und loggen sie sich neu ein.";
        }
    ?>
    ich habe jetzt auch nochma die befehle direkt ausm selfhtml kopiert und angepasst, bringt trozdem nix.

    hoffe weiter auf hilfe Borky

    PS:*wegens späterer login-fälschung ^^

  5. #5
    Folgender Code funktionniert:

    PHP-Code:
    <html>
     <
    head>
      <
    script language='JavaScript' type="text/javascript">
       function 
    insert (bbcode) {
        var 
    parminserttext;
        
    parm "":
        
    inserttext "";
        
    parm window.prompt("Bitte den zu formatierenden Text eingeben!\n["+bbcode+"]xxx[/"+bbcode+"]""");
        
    inserttext "["+bbcode+"]"+parm+"[/"+bbcode+"]";
        
    document.formular.message.value document.formular.message.value ' ' inserttext;;
       }
      
    </script>
     </head>
     <body>
      <form action='content_neu_allg_3.php' method='POST' name='formular'>
       <b>Titel:</b><br>
       <input type="text" name="titel"><br>
       <br><br>
       <table border"0">
        <tr>
         <td align="right">
          <textarea name='message' style='height:160px; width:160px;'></textarea>
         </td>
         <td align="left" valign="top">
          <a href="javascript:insert('B')">
           <img src='images/bbcode_bold.gif' border='0'>
          </a>
         </td>
        </tr>
       </table>
      </form>
     </body>
    </html> 
    Das onClick hab ich raus weil zumindestens beim Firefox dann zweimal die Funktion aufgerufen wird. Beim Funktionsaufruf hast du die Annführungszeichen vergessen. Und die Werte inserttext und parm hab ich schon früher deklamiert und Leer-zugewiesen weil, zumindestens beim Firefox sonst bei keiner Eingabe "null" drinsteheht, kleiner Schönheitsfehler also.

    edit: ach ja, bei window.prompt ist der Zeilenumbruch wie in sogut wie jeder Sprache \n nicht der HTML-Befehl <br>.

  6. #6
    langsam aber sicher verzweifel ich. ok, es geht noch immer net. ka warum. hab die ganze sache ja über xampp gemacht. habs probiert als html datei zu speichern und offline auszuführn. habs auf meinen webspae geladen. und immer wieder das selber ergebniss: nix!
    langsam frag ich mich, ob das script mich net mag, oder ob ich schlicht und einfach zu doff für sowas bin. Ich danke euch für eure hilfe, aber auch der neue code von crash hat nix gebracht. komischerweise, wenn er sagt, bei ihm gings. Ich habs jetzt sowohl mit FF probiert, und mich auch dazu überwunden es mit dem IE nu probieren, aber wie gesagt, ohner erfolg.

    In diesem Sinne Borky

  7. #7
    o.O Wenn man die zuweisungen parm = "": und inserttext = ""; weglässt funktionier es bei mir sogar überall. Kann sein weil ich unter Linux noch 1.0.8 vom Firefox nehme?! kA, neuere Pakete hat Ubuntu nicht.

  8. #8
    Zitat Zitat von Crash-Override
    o.O Wenn man die zuweisungen parm = "": und inserttext = ""; weglässt funktionier es bei mir sogar überall. Kann sein weil ich unter Linux noch 1.0.8 vom Firefox nehme?! kA, neuere Pakete hat Ubuntu nicht.
    ich habe zur Zeit das jetztige update Firefox 1.5.0.3 da klappt dasd auhc wenn parm=""; und inserttext=""; lösche oO
    sogar opera macht was
    Hatte das mal einfach bei mir getestet 8[ wollte auhc fehler suchen aber Crash Over fand denn :P

  9. #9
    h endlich, es geht. danke nochmal an alle, die mir hierbei geholfen ham. hab jetzt das parm=""; und inserttext=""; gelöscht und siehe da, es geht. amit kann der Thread geclosed werden!

    In diesem Sinne Borky

  10. #10
    Du könntest auch einfach ein var davor schreiben (Also vor die Variablen)
    Dann gi´bts denk ich mal keine Errors und es sollte laufen :P

  11. #11
    Zitat Zitat von Manni
    Du könntest auch einfach ein var davor schreiben (Also vor die Variablen)
    Dann gi´bts denk ich mal keine Errors und es sollte laufen :P
    wennde mal alle posts richtig gelesen hättest: die vars waren immer mit vorhanden, an den verschiedensten stellen. auch gab es nie nen error, die function wurde gar ncht erst richtig ausgeführt.

    aber was anderes. ich hab mal noch ein paar tuts gewültz, aber nirgens gefunden: kann ich bei if-abfragen auch mehrere auf einmal abfragen. ich will, wenn in einem fenster nix steht, oder cancel gedrükt wird(was "null" ausgibt) etwas anderes ausgegeben wird. über switch möcht ichs net unbedingt machen, da ich da ja nur 2 zweige + else brauche (einen für "", einen für "null" und einen wenn was drinsteht.

    in php würde das so ausehn:

    PHP-Code:
    if((parm1 == "") OR (parm1 == "null"))
    {
    ...
    }
    else
    {
    ...

    ich habs genau so ausprobiert, das hat mir aber nen fehler gebracht

    In diesem Sinne Borky

  12. #12
    Mach doch was in der Art:
    PHP-Code:
    if (parm1 == "null"parm1 "";
    if((
    parm1 == ""))
    {
    ...
    }
    else
    {
    ...

    kA Obs genau so geht ist ungetestet.

  13. #13
    Zitat Zitat von Borky
    wennde mal alle posts richtig gelesen hättest: die vars waren immer mit vorhanden, an den verschiedensten stellen. auch gab es nie nen error, die function wurde gar ncht erst richtig ausgeführt.
    Sorry, hab ich überlesen
    Ansonsten ist die Console² Extention des Firefox verdammt praktisch zum Javascript rumpfuschen

    Und in Javascript gibt es auch AND und OR...

  14. #14
    Zitat Zitat von Crash-Override
    Mach doch was in der Art:
    PHP-Code:
    if (parm1 == "null"parm1 "";
    if((
    parm1 == ""))
    {
    ...
    }
    else
    {
    ...

    kA Obs genau so geht ist ungetestet.
    hatt i schon probiert, entweder war das wieder son rotz tag, wo mich mein server nicht gemocht hat, aber es hatte nicht geklappt. ka ob man innerhalb einer funktion eine var nur einmal zuweisen kann. das fänd ich ziemlich sinnlos, aber das mit dem vordefenieren hatte ja auch net geklappt (crashs post weiter oben)
    werds wohl jetzt doch übern switch machn, aussr ihr könnt mir noch ne andere möglichkeit sagen

    In diesem sinen Borky

    EDIT:
    Ok, hab jetzt einiges geändert, und iedereinmal geht gar nix.
    erst mal hab ich die funktionen in ne externe datein gebracht:
    erst mal die bbcodes.js:
    HTML-Code:
       function insertform (bbcode) {
        var parm, inserttext;
        parm = window.prompt("Bitte den zu formatierenden Text eingeben!\n["+bbcode+"]xxx[/"+bbcode+"]", "");
        inserttext = "["+bbcode+"]"+parm+"[/"+bbcode+"]";
        document.formular.message.value = document.formular.message.value + inserttext;
       }
    
       function inserturl (bbcode) {
        var parm1, parm2, inserttext;
        parm1 = window.prompt("Bitte den Anzeigetext eingeben! (Kann freibleiben)", "");
        parm2 = window.prompt("Bitte URL eingeben!", "http://");
    	switch (parm1) {
    	 case"";
    	 	inserttext = "["+bbcode+"]"+parm2+"[/"+bbcode+"]";
    	 	break;
    	 case"null":
    	 	inserttext = "["+bbcode+"]"+parm2+"[/"+bbcode+"]";
    	 	break;
    	 default:
    	 	inserttext = "["+bbcode+"="+parm2+"]"+parm1+"[/"+bbcode+"]";
    	 	break;
    	 	}
    	 document.formular.message.value = document.formular.message.value + inserttext;
       }
    
       function insertmail (bbcode) {
        var parm1, parm2, inserttext;
        parm1 = window.prompt("Bitte den Anzeigetext eingeben! (Kann freibleiben)", "");
        parm2 = window.prompt("Bitte Mail eingeben!", "xyz@xyz•••••");
        if(parm1 == "") {
        inserttext = "["+bbcode+"]"+parm2+"[/"+bbcode+"]";
        }
        else {
        inserttext = "["+bbcode+"="+parm1+"]"+parm2+"[/"+bbcode+"]"; }
        document.formular.message.value = document.formular.message.value + inserttext;
       }
    
       function insertimg (bbcode) {
        var parm1, parm2, inserttext;
        parm1 = window.prompt("Bitte ALT-Tag eingeben! (Kann freibleiben)", "");
        parm2 = window.prompt("Bitte Bild-URL eingeben!", "http://");
        if(parm1 == "") {
        inserttext = "["+bbcode+"]"+parm2+"[/"+bbcode+"]";
        }
        else {
        inserttext = "["+bbcode+"="+parm1+"]"+parm2+"[/"+bbcode+"]"; }
        document.formular.message.value = document.formular.message.value + inserttext;
       }
    und das is die normale datei, in die das aufgerufen werden soll:
    PHP-Code:
    <?php
    session_start
    ();
    include(
    "db-connect.php");

    if (
    $_SESSION['logcode'] == "???")
        {
        if (
    $_SESSION['user-group'] == 3)
            {
                
    //Content neu allg 2: Contennterstellung
                
    ?>
    <html>
    <head>
    <script src="bbcodes.js" type="text/javascript"></script>
    </head>
     <body>
      <form action='content_neu_allg_3.php' method='POST' name='formular'>
       <b>Titel:</b><br>
       <input type="text" name="titel"><br>
       <br><br>
       <table border"0">
        <tr>
         <td align="right">
          <textarea name='message' cols='50' rows='15'></textarea>
         </td>
         <td align="left" valign="top">
          <a href="javascript:insertform('B')">
           <img src='images/bbcode_bold.gif' border='0'>
          </a>
          <a href="javascript:inserturl('URL')">
           <img src='images/bbcode_url.gif' border='0'>
          </a>
         </td>
        </tr>
       </table>
      </form>
     </body>
    </html>
                <?PHP
            
    }
        else
            {
            echo 
    "Sie haben nicht die nötigen berechtigungen für diesen Teil der Seite. Bitte kehren sie zu startseite zurück!";
            }
        }
    else
        {
        echo 
    "Sie sind nicht eingeloggt. Bitte kehren Sie zur Startseite zurück und loggen sie sich neu ein.";
        }
    ?>
    weiß einer, wie ich abfragen kann, ob beim eingeben einer parm über promt cancel gedrükt wurde. über die möglichkeit case="null" gehts net.

    hoffe ihr könnt mir helfen.

    In diesem Sinne Borky

    EDIT²:
    Ok hat sich erledigt. Geht jetzt alles.
    Vorher:
    PHP-Code:
    ...
    if (
    parm1 == "" || parm1 ="null")
     ... 
    Das ging nicht. Nachher:
    PHP-Code:
    ...
    if (
    pram1 == "" || parm1 == null
    ... 
    Das geht jetzt, komischerweise. is ja auch egal. Trotzdem thx an alle, die mir bisher geholfen haben

    Geändert von Borky (02.06.2006 um 18:01 Uhr)

  15. #15
    ich weiß zwar das pushen von thread nich gerade erwünscht is, ich will abere keinen neuen aufmachen, wegen eines problems welches ich schonmal ahhte, und das troz intensiven probierens und schauns nich weggeht.

    also hier erst mal der ganze Code:
    PHP-Code:
    <?PHP
    if(isset($_POST['link_up'])) {
    $abfrage mysql_fetch_array(mysql_query("SELECT * FROM `linkliste` WHERE `ID`='".$_POST['linkpos']."'"));
    $pos $abfrage['pos_ID'] - 1;
    $update mysql_query("UPDATE `linkliste` SET `pos_ID`='".$pos."' WHERE `ID`='".$_POST['linkpos']."'");
    }
    if(isset(
    $_POST['link_down'])) {
    $abfrage mysql_fetch_array(mysql_query("SELECT * FROM `linkliste` WHERE `ID`='".$_POST['linkpos']."'"));
    $pos $abfrage['pos_ID'] + 1;
    $update mysql_query("UPDATE `linkliste` SET `pos_ID`='".$pos."' WHERE `ID`='".$_POST['linkpos']."'");
    }
    echo
    '
    <script type="text/javascript">
    function inserttarget (target) {
        var parm, inserttext;
        parm = window.prompt("Bitte die Content-ID angeben!\n(Falls vorhanden!", "");
        inserttext = "main.php?section="+parm;
        document.formular.ziel.value = inserttext;
       }
    </script>
    <form action="index.php?section=8" method="post">
    <center>
    <table border="2" width="500">
        <tr>
            <td>Link hinzufügen<br>
                <font size="2">Bitte Kategorie wählen</font>
            <td align="center">
                '
    ;
                
    $abfrage mysql_query("SELECT * FROM `kategorien`");
                if(
    mysql_num_rows($abfrage)) {
                    echo
    '
                    <select style="width:120px;" size="1" name="kat_link_neu">'
    ;
                    while(
    $row mysql_fetch_array($abfrage)) {
                        echo
    '<option value="'.$row['ID'].'">'.$row['name'].'</option>';
                        }
                    echo
    '</select>
                    <br>
                    <br>
                    <input type="submit" class="button" name="link_neu" value="Erstellen">'
    ;
                }
                else { echo
    'Keine Kategorien vorhanden'; }
                echo
    '
                </td>
        </tr>
        <tr>
            <td>Link bearbeiten<br>
                <font size="2">Bitte Kategorie wählen:</font></td>
            <td align="center">
            '
    ;
                
    $abfrage mysql_query("SELECT * FROM `kategorien`");
                if(
    mysql_num_rows($abfrage)) {
                    echo
    '
                    <select style="width:120px;" size="1" name="kat_link_edit">'
    ;
                    while(
    $row mysql_fetch_array($abfrage)) {
                        echo
    '<option value="'.$row['ID'].'">'.$row['name'].'</option>';
                        }
                    echo
    '</select>
                    <br>
                    <br>
                    <input type="submit" class="button" name="link_neu" value="Editieren">'
    ;
                }
                else { echo
    'Keine Kategorien vorhanden'; }
                echo
    '
            </form>
            </td>
        </tr>
        '
    ;
        if(
    $_GET['linkpos'] == 1) {
        echo
    '
        <tr>
        <form action="index.php?section=8&linkpos=1" method="post">
        <input type="hidden" name="kat_link_sort" value="'
    .$_POST['kat_link_sort'].'">
            <td>
            <font valign="top">Links sortieren:<br></font>
            <font valign="middle">
            <input type="submit" class="button" style="witdh:40px;" name="link_up" value="hoch">
            <input type="submit" class="button" style="witdh:40px;" name="link_down" value="runter">
            </td>
            <td align="center">
            '
    ;
            
    $abfrage mysql_query("SELECT * FROM `linkliste` WHERE `kat_ID`='".$_POST['kat_link_sort']."' ORDER BY `pos_ID`");
            if(
    $rows mysql_num_rows($abfrage)) {
                echo
    '<select style="witdh:120px;" size="'.$rows.'" name="linkpos">';
                while(
    $row2 mysql_fetch_array($abfrage)) {
                    echo
    '<option value="'.$row2['ID'].'">'.$row2['pos_ID'].' - '.$row2['seite'].'</option>';
                }
                echo
    '</select>';
            }
            else { echo
    'Links in dieser Kategorie vorhanden'; }
            echo
    '
            </td>
        </form>
        </tr>
        '
    ;
        }
        else {
        echo
    '
        <tr>
            <td>Link sortieren:</td>
            <td align="center">
                <form action="index.php?section=8&linkpos=1" method="post">
                '
    ;
                
    $abfrage mysql_query("SELECT * FROM `kategorien`");
                if(
    mysql_num_rows($abfrage)) {
                    echo
    '
                    <select style="width:120px;" size="1" name="kat_link_sort">'
    ;
                    while(
    $row mysql_fetch_array($abfrage)) {
                        echo
    '<option value="'.$row['ID'].'">'.$row['name'].'</option>';
                        }
                    echo
    '</select>
                    <br>
                    <br>
                    <input type="submit" class="button" name="link_sort" value="Sortieren">'
    ;
                }
                else { echo
    'Keine Kategorien vorhanden'; }
                echo
    '
            </form>
            </td>
        </tr>'
    ;
        }
        if(isset(
    $_POST['link_neu'])) {
        echo
    '
        <form action="index.php?section=8" method="post">
        <input type="hidden" name="kat_link_neu" value="'
    .$_POST['kat_link_neu'].'">
        <tr>
            <td>Name des Links:<br>
            <font size="2">Entspricht dem Anzeigetext des Links</font></td>
            <td align="center"><input type="text" class="text" style="width:120px;" name="name" value="Name des Links"></td>
        </tr>
        <tr>
            <td>Ziel:</td>
            <td align="center">
                <input type="text" class="text" name="ziel"><br>
                <a href="javascript:inserttarget(\'ID\')"><button>Link zu Content</button></a>
                </form>
            </td>
        </tr>
        '
    ;
        }
    echo
    '
    </table>'
    ;
    ?>
    und zur besseren Übersicht nochmal die schnippsel um dies geht, zum einem die JS-Function:
    Code:
    <script type="text/javascript">
    function inserttarget (target) {
        var parm, inserttext;
        parm = window.prompt("Bitte die Content-ID angeben!\n(Falls vorhanden!", "");
        inserttext = "main.php?section="+parm;
        document.formular.ziel.value = inserttext;
       }
    </script>
    und hier der teil wos gebraucht wird:
    HTML-Code:
    	<form action="index.php?section=8" method="post">
    	<input type="hidden" name="kat_link_neu" value="'.$_POST['kat_link_neu'].'">
    	<tr>
    		<td>Name des Links:<br>
    		<font size="2">Entspricht dem Anzeigetext des Links</font></td>
    		<td align="center"><input type="text" class="text" style="width:120px;" name="name" value="Name des Links"></td>
    	</tr>
    	<tr>
    		<td>Ziel:</td>
    		<td align="center">
    			<input type="text" class="text" name="ziel"><br>
    			<a href="javascript:inserttarget(\'ID\')"><button>Link zu Content</button></a>
    			</form>
    So, kann mir bitte einer sagen, warum der in dem textfeld nix einfügt. das eingabefensterwird ordentlich aufgerufen.

    In diesem Sinne Borky

  16. #16
    1. Du musst die einfachen Anführungszeichen nei dem Funktionsaufruf nicht escapen
    2. Du gibst als Ziel "ID" an, willst aber wohl auf das "ziel" Element hinaus

  17. #17
    Zitat Zitat von Manni
    1. Du musst die einfachen Anführungszeichen nei dem Funktionsaufruf nicht escapen
    2. Du gibst als Ziel "ID" an, willst aber wohl auf das "ziel" Element hinaus
    zu 1.: natürlich muss ich diese escapen, da ich ja mit echo' ... '; arbeite. wenn ich sie nicht escape denkt der ja, der echo-Befehl währe beendet/unterbrochen und erwartet dort wieder normaln php-code oder ein; und bringt mir somit einen Fehler. und das mit der ID: ich hate einfach das ganze aus den oben, bereits gehenden bb-codes herrauskopiert. nun da hatte ich in den klammrn den BB-Code angegeben, welcher dan auch angezeigt wurde:
    z.b. hab ich insertform(B) aufgerufen, und ausgegeben hat er mir dann
    Code:
    ...
    . nun das brauch ich hier ja nicht, da er hier einfach nur nen einfachen, immer gleichen text ausgeben soll. möglich das ich bei der funktion und dem aufruf die klammern frei lassen haben könen, ich wa mir da aber hlat nicht so sicher, da ich mich mit JS nicht so auskenne (ja, ich müsst mich ma hinsetzten, aber dafür hab ich derzeit keine zeit) Du siehst laso, im endeffekt hat du mir nich wirklich weitergeholfen

    In diesem Sinne Borky

    EDIT: ok hat sich erledigt, jetzt gehts, nachdem ich ne halbe stunde es selfhtml gewälzt hab. trozdem danke

    Geändert von Borky (25.09.2006 um 19:32 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •