tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
Like Tree1Danke
ERLEDIGT
JA
ANTWORTEN
18
ZUGRIFFE
651
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    Hallo,
    ich habe auf dieser Seite http://www.9lessons.info/2010/08/tag-friends-with-jquery-ajax-and-php.html ein Script gefunden womit man wie bei Facebook Freunde in einem Beitrag makieren kann. Das funktioniert zwar allerdings wird als Textfeld ein Div verwendet. Ich brauche für meine Zwecke allerdings ein Textfeld (textarea). Da meine Javascriptkenntnisse nicht so gut sind bitte ich um Hilfe. Kann mir jemand vielleicht posten wie ich anfangen kann.
    Wäre wirklich sehr nett wenn mir jemand hilft.


    Das ist das Script:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    
    <script type="text/javascript" src="http://ajax.googleapis.com/
    ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function()
    {
    var start=/@/ig; // @ Match
    var word=/@(\w+)/ig; //@abc Match
     
    $("#contentbox").live("keyup",function()
    {
    var content=$(this).text(); //Content Box Data
    var go= content.match(start); //Content Matching @
    var name= content.match(word); //Content Matching @abc
    var dataString = 'searchword='+ name;
    //If @ available
    if(go.length>0)
    {
    $("#msgbox").slideDown('show');
    $("#display").slideUp('show');
    $("#msgbox").html("Type the name of someone or something...");
    //if @abc avalable
    if(name.length>0)
    {
    $.ajax({
    type: "POST",
    url: "boxsearch.php", // Database name search
    data: dataString,
    cache: false,
    success: function(data)
    {
    $("#msgbox").hide();
    $("#display").html(data).show();
    }
    });
    }
    }
    return false();
    });
     
    //Adding result name to content box.
    $(".addname").live("click",function()
    {
    var username=$(this).attr('title');
    var old=$("#contentbox").html();
    var content=old.replace(word," "); //replacing @abc to (" ") space
    $("#contentbox").html(content);
    var E="<a class='red' contenteditable='false' href='#' >"+username+"</a>";
    $("#contentbox").append(E);
    $("#display").hide();
    $("#msgbox").hide();
    });
    });
    </script>
    //HTML Code
    <div id="container">
    <div id="contentbox" contenteditable="true">
    </div>
    <div id='display'>
    </div>
    <div id="msgbox">
    </div>
    </div>
     

  2. #2
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Zeile 44 wird das Div mittels der id angeprochen. Probier doch aus, ob Du im HTML-Bereich einfach nur eine textarea mit jener id "contentbox" hinsetzen musst anstatt des (editierbaren) divs (Zeile 56).

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  3. #3
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    Danke für die schnelle Antwort. Das habe ich auch schon probiert, hat allerdings nichts genützt .
    MFG tl2011
     

  4. #4
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Möglicherweise, weil eine textarea keine html-Daten bereitstellt, sondern man den Text per val() auslesen muss.
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    // anstatt
    var old=$("#contentbox").html();
    // vielleicht
     
    var old=$("#contentbox").val();
     
    // ****** Zeile 46 gleichermaßen
    Tatsächlich werden dann alle html-bedingten Arbeiten im Javascript unnötig sein. Warum darf es denn nicht einfach eine editierbare Div bleiben?

    mfg chmee
    Geändert von chmee (17.01.12 um 15:09 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  5. #5
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    Weil ich ein relativ großes Script habe das zur Textarea gehöhrt. Es handelt sich bei meinem Projekt um ein Soziales Netzwerk und die Textarea gehöhrt zur Pinnwand der User. Deswegen kann ich kein Div verwenden.
    LG tl2011
     

  6. #6
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    Dein Tipp funktioniert leider nicht
    LG tl2011
     

  7. #7
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    War abzusehen, denn die nachgeführten Arbeiten in Zeile 47 und 48 bedingen HTML, welches eine textarea nunmal nicht hat. UND : vor Allem kannst Du in einer Textarea keine inline-Änderungen anstellen, wie zB Wort umfärben. Und genau dafür ist Dein Script ja gedacht, oder?

    http://forum.de.selfhtml.org/archiv/2004/10/t92877/

    Du musst an der textarea auch nicht festhalten, sondern solltest - wie schon im Ausgangscode - auf editierbare div's umstellen. Ist das gleiche in Grün mit ein bissel anderem Code.

    mfg chmee
    Geändert von chmee (17.01.12 um 17:43 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  8. #8
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    hmm ich werds mal versuchen. Danke für die Hilfe
     

  9. #9
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    Leider gibt es da massive Probleme mit meinem Script. Ich kann das Script nur für die Textarea umbauen
     

  10. #10
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Nun, dieses Script markiert die Freundesnamen, indem es jene erkannten Freunde mit html-tags besonders darstellt. Da eine textarea solch eine Kennzeichnung nicht kann, ist die Kombination Script und textarea nicht möglich. Was nun?

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  11. #11
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    hmm also wichtig wäre halt nur das ein besonderer Code in die Datenbank (an dieser Stelle) Sowas wie (user-id=3)in die Datenbank geschrieben wird und das beim auslesen dann <a href="profile.php?user=3">tl2011</a> an der Stelle des Textes ausgegeben wird.
     

  12. #12
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Ich halte das für eine Funktion, die bei der Ausgabe durchgeführt wird. Andersrum, ich halte wenig von der Idee, in den "Text" Template-Code oder sonstige Scriptzeilen einzubauen und dann zu speichern.

    Letztlich: Dann brauchst Du vor dem Speichern lediglich via php und regex den Text bearbeiten - und Du brauchst den JS-Code nicht.

    PHP-Code:
    $alter_text " hans hat böse über dieter gesprochen";

    // angenommen, das ist das Array mit den 
    // Freundesnamen (mit delimitern)
    $freunde = array ( "/hans/""/dieter/""/anton/" );
    // und ein zweites mit den id's
    $freund_id = array ( 1327119 );

    // ersetzt man eben so:
    $neuer_text preg_replace$freunde"(u_id=".$freund_id.")"$alter_text);

    echo 
    $neuer_text;
    // " (u_id=13) hat böse über (u_id=27) gesprochen"
    // sollte rauskommen 
    (vorsicht, ist jetzt so hingekritzelt, könnte Fehler haben..)

    http://de3.php.net/preg_replace - Beispiel #2 - uU ksort beachten!

    mfg chmee

    p.s.: replace lässt bei Arrays keine Textverwurschtelungen im replacement zu, deswegen der kleine Umweg, das Ersetzungsarray gleich komplett zu machen.
    PHP-Code:
    $alter_text " hans hat boese ueber dieter gesprochen";

    $freunde = array( "#hans#""#dieter#""#anton#" );
    $freund_id_with_TemplateCode = array ( "(uid=13)","(uid=27)","(uid=119)");

    $neuer_text preg_replace$freunde$freund_id_with_TemplateCode$alter_text);

    echo 
    $neuer_text
    p.p.s.: Ach so - Dir ist aber inzwischen klar, dass <a href="xxx">xxx</a> ein HTML-Tag ist, der in einer textarea als Text ausgegeben wird - nicht als LINK - oder?!
    Geändert von chmee (18.01.12 um 17:20 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  13. #13
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    Ja ist mir klar ich meinte das dieser Html im Post vorkommen soll das makieren soll ja dem Zweck dienen das der User im Beitrag dann verlinkt ist der Js Code dient ja dem Zweck das man überhaupt makieren kann. Wenn man also @tl99 eingibt kommt unter dem textfeld eine Liste mit Freunden die so heißen und wenn man dann auf jemanden klickt sollte ein Code wie dieser eingefügt werden (user_id=2) und dann müsste noch ein Code sein der beim auslesen aus der datenbank diese id ausliest und in <a href="profile.php?user=$id">$User<a/> umwandelt. Ich müsste es nur schaffen den Js code so umzu bauen
     

  14. #14
    Avatar von chmee
    chmee chmee ist gerade online mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Wenn der einzige Zweck die Verlinkung ist, dann kann (1.) beim Eingeben ein kurzer Check geschehen (wird zB darunter angezeigt), (2.) der Text in Reinform gespeichert und (3.) erst bei der Ausgabe on the fly mit einem Link versehen.

    Zwei Dinge, dich befürchte:
    (A) Sollte jemals user X mit der id 39 aus dem System verschwinden, ist da kein Link, sondern ein schnöder Platzhalter (oder Fehler , jedenfalls kein Name..
    (B) Sollte es mal zu einem RSS-Feed (oder einer API) kommen, bei dem Links nicht nötig sein sollten, kann jener gespeicherte Text direkt ausgegeben werden, ohne weitere SQL-Queries, wer denn nun user_id=39 ist.

    Aber, um nicht ständig zu unken, werd ich Dir mal nachher ein Beispiel für Dein Unterfangen in JS bauen..

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  15. #15
    tl2011 tl2011 ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    19
    okay Danke
     

Ähnliche Themen

  1. Blätterfunktion umbauen?
    Von louS im Forum PHP
    Antworten: 15
    Letzter Beitrag: 21.10.09, 14:41
  2. Slideshow-Script funktionell umbauen
    Von =fire= im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 13.10.09, 08:00
  3. Navigation umbauen für IE`s
    Von Peter Klein im Forum CSS
    Antworten: 3
    Letzter Beitrag: 19.07.08, 22:59
  4. string umbauen
    Von Thomasio im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 12.03.07, 17:12
  5. Navigationsmenü umbauen
    Von Romsl im Forum CSS
    Antworten: 8
    Letzter Beitrag: 01.04.06, 00:35