Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] String markieren und einfärben

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] String markieren und einfärben

    Hallo Zusammen! Ich habe eine Frage zwecks realisierung.
    Und zwar habe ich einen Ticker(Newsticker) mit Javascript gemacht. Die Inhalte des Tickers lasse ich über PHP auslesen. Befüllen kann ich den Ticker über ein Backend. Dort habe ich ein Formular,daß den Text des Tickers in eine Textdatei speichert. Meine Frage wäre jetzt folgende. Manchmal sollen Einträge anders formatiert werde,also z.b in Farbe.Und das soll so in etwa wie in Word passieren. Also ich lasse mir den Inhalt des Formulars anzeigen, z.b in einer Textarea und wenn ich ein Wort markiere und zb auf einen Button klicke, dann wird der markierte Text rot.
    Ist das realisierbar? Wenn ja, kann mir vielleicht wer Hilfestellung diesbezüglich geben? Vielleicht denke ich momentan nur zu kompliziert und es gibt ja auch eine Funktion dafür.Ich habe bei den Stringeinstellungen nachgesehen,aber leider nichts gefunden.Leider ist es als Anfänger nicht so einfach.
    Vielen Dank.
    Mfg,Alexx

  • #2
    Du suchst einen sogenannten WYSIWYG Editor für Javascript (Google!). Bspw. TinyMCE. Dabei wird aber stets irgendwie formatierter Code erzeugt, z.B. Html oder XML.
    Vielleicht ist auch eine BBCode Formatierung etwas für Dich. Eine sehr simple Auszeichnungssprache die ich gerne benutze ist Textile - eine Sprache die in der Auszeichnung so übersichtlich bleibt (damit aber auch in der Featuritis begrenzt), dass sie durchaus im Klartzext zu handlen bleibt.
    Referenz: Textile
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      willkommen

      meine frage, soll es nur im ticker so aussehen, oder muss es direkt wenn du es ändert...
      könntest z.b in die textdatei mit schreiben [bg red] [/bg] und das dann halt beim öffnenn umwandeln in css-code..

      ansonsten geht es nur per javascript. wie genau weiß ich nicht.. m+üsstest irgednwie rausbekommen welchen teil du im mom per hand makiert hast um ihn zu ändern
      Under Construktion

      Kommentar


      • #4
        Versuch das bloß nicht selbst zu implementieren! Es gibt genug ausgereifte JS Editoren dafür.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          oder so
          nimm dir ein fertigen js-editor...dann haste das problem nicht...
          Under Construktion

          Kommentar


          • #6
            Naja wenns nur um BBCode geht kann mans auch ruhig selber machen, dann kann man sich den Code wenigstens selbst aussuchen.

            Kommentar


            • #7
              Sicher. Obwohl BBCode streng genommen natürlich auch einer Art Standard (zumindest für Basisauszeichnungen) folgt.
              alexx hat sich allerdings noch nicht dazu geäußert, ob plain Textausz. überhaupt in Frage kommen würde.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Wow, danke zuerst mal für die vielen Antworten.
                Also das Projekt,was ich gemacht habe ist für meine
                Mutter
                und sie soll die paar Sachen,die sie ändern will selber
                administrieren.
                Deshalb hab ich ihr halt so ein kleines CMS gemacht,
                weil sie von HTML und co nicht die kleinste Ahnung hat.
                Ich bin eigentlich mit dem Projekt so gesehen schon fertig,
                nur hat sie jetzt geäußert,daß sie eben beim Newsticker,der
                nur aus ganz normalem Text besteht,auch Farben reinbringen
                will,also um Kurse oder so als neu zu kennzeichnen.
                Mein Quelltext für den Ticker sieht folgendermaßen aus:
                Code:
                <body onload="marquee()">
                
                <script language="JavaScript">
                <!--
                
                      var timerID = null;
                          var timerRunning = false;
                          var id,pause=0,position=0;
                          function marquee() {
                                  var i,k,msg=" <?php readfile("ticker.txt")  ?> ";
                                  k=(75/msg.length)+1;
                                  for(i=0;i<=k;i++) msg+=" "+msg;
                                  document.marqueeform.marquee.value=
                msg.substring(position,position+120);
                                  if(position++==69) position=0;
                                  id=setTimeout("marquee()",1000/10); }
                          function action() {
                                  if(!pause) {
                                          clearTimeout(id);
                                          pause=1; }
                                  else {
                                          marquee();
                                          pause=0; } }
                          // -->
                </script>
                <form name="marqueeform"><input type="text" name="marquee" size="100"></form>
                Und des Code im Backend fürs Einfügen:
                PHP-Code:
                <body>
                <form id="form1" name="form1" method="post" action="">
                  Gib hier den Text ein, der als Lauftext angezeigt werden soll:<br />
                  <label>
                  <input name="tickertext" type="text" id="textfield" size="120" />
                  </label>
                  <p>
                    <label>
                    <input type="submit" name="button" id="button" value="Text speichern" />
                    </label>
                  </p>
                  <?php
                      $tickertext 
                $_POST['tickertext'];
                    
                    
                $dateifopen("ticker.txt","w");
                    
                    if(
                $datei == false)
                    {
                        echo 
                "<p>Die Datei konnte nicht zum Schreiben geöffnet werden</p>";
                        exit;    
                    }    
                      
                    
                fputs($datei$tickertext);
                    
                fclose($datei);
                  
                  
                ?>
                </form>
                Wenn alles in Farbe sein hätte sollen,kein Problem.Auch wenn die eine Hälfte in Schwarz und die andere färbig,auch kein Problem.
                Aber so immer wieder zwischendurch soll es in Farbe sein und das ist mein Problem.
                Meine Denkweise war jetzt folgende: Ich lasse mir den Inhalt der Textdatei nochmals in einer Textarea anzeigen und markiere
                dann die Wörter,die ich färbig haben will und bestätige,
                sprich ich schreib das in die Textdatei. Eigentlich eh so,
                wie das hier auch möglich ist. Nur ich habe halt keine
                Ahnung,wie ich mir von PHP ausgeben lassen kann,welches
                Wort/String gerade markiert ist.
                Das mit den BBCODE hab ich mir kurz angesehen, sowas wär
                natürlich auch eine Idee - kann man das ganz normal in HTML
                reinschreiben und wird dann interpretiert?
                Vielen Dank.
                Mfg,Alexx

                Kommentar


                • #9
                  Hallo wieder!
                  Ich habe da was gebastelt, was für den Anfang nicht schlecht aussieht,finde ich irgendwie,aber bei einigen Sachen paßt es noch nicht.
                  Also das ist der Code:
                  PHP-Code:
                  <form id="form1" name="form1" method="post" action="">
                    <label>
                  <?php 

                      
                    
                  echo '<textarea name="textfeld" cols="40" rows="5" id="textfield">';  
                          
                    if (isset(
                  $_POST['rot']))
                     {echo 
                  '<font color="red"></font>';}
                     elseif (isset(
                  $_POST['gruen']))
                     {echo 
                  '<font color="red"></font>';}
                    echo 
                  '</textarea>';
                    
                  $textfeld$_POST['textfeld'];
                     if (isset(
                  $_POST['save']))
                     {
                         
                  $dateifopen("ticker.txt","w");
                      
                      if(
                  $datei == false)
                      {
                          echo 
                  "<p>Die Datei konnte nicht zum Schreiben geöffnet werden</p>";
                          exit;    
                      }    
                        
                      
                  fputs($datei$textfeld);
                      
                  fclose($datei);
                     }
                   
                     
                  ?>
                    </label>
                    <label>
                    <input type="submit" name="rot" id="button" value="Rot" />
                    </label>
                    <label>
                    <input type="submit" name="gruen" id="button2" value="Grün" />
                    </label>
                    <p>
                      <input type="submit" name="save" id="button3" value="Speichern" />
                    </p>
                  </form>
                  Problem 1: Wenn schon Text in der Textarea drinnen steht und ich z.B. den Button Grün drücke, dann wird das von dem Font Color überschrieben, gleiches passiert
                  auch wenn ich den Rot Button klicke. Im Prinzip ist es mir klar, weil ein Verkettungsoperator fehlt. Aber ich weiß nicht genau,wie ich das einbauen kann.
                  Problem 2: Das viel schlimmere und da weiß ich ned,ob ich da ned am Holzweg mit meiner Methode bin. Folgendes wird in die Textdatei reingschrieben: <font color=\"green\">hallo du,wie gehts</font> , tja aber leider nicht im Ticker, sprich von JavaScript, interpretiert.
                  Vielleicht könnt ihr mir dabei helfen.
                  Vielen Dank auf jeden Fall schon mal.
                  Mfg,
                  Alex

                  Kommentar


                  • #10
                    -Schon beim letzten Problem ergeben sich zwei Probleme:
                    1/ JS gibt die Zeichen des Strings (also auch die Tags) einzeln aus.
                    2/ Du benutzt für den Tickerbereich bein <input> Feld. Das kannst Du zwar farbig markieren, aber nicht mehrfarbing, weil IM Feld alle Tags auch als Zeichen dargestellt werden.

                    Du müsstest eine Lösung finden, einen Blockbereich per JS zu 'tickern'. Durch Ändern des left oder margin Stylesheets oder dergl.
                    [COLOR="#F5F5FF"]--[/COLOR]
                    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                    [COLOR="#F5F5FF"]
                    --[/COLOR]

                    Kommentar


                    • #11
                      Nächstes mal bitte als 'Erledigt' markieren oder einen Hinweis geben, dass Du einen zugehörigen neuen Thread eröffnet hast:

                      http://www.php.de/javascript-ajax-un...-ausgeben.html

                      Thread geschlossen.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar

                      Lädt...
                      X