-
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>
-
17.01.12 14:49 #2
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 chmeeMein 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 <-
-
Danke für die schnelle Antwort. Das habe ich auch schon probiert, hat allerdings nichts genützt
.
MFG tl2011
-
17.01.12 15:06 #4
Möglicherweise, weil eine textarea keine html-Daten bereitstellt, sondern man den Text per val() auslesen muss.
Tatsächlich werden dann alle html-bedingten Arbeiten im Javascript unnötig sein. Warum darf es denn nicht einfach eine editierbare Div bleiben?Code :1 2 3 4 5 6 7
// anstatt var old=$("#contentbox").html(); // vielleicht var old=$("#contentbox").val(); // ****** Zeile 46 gleichermaßen
mfg chmeeGeä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 <-
-
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
-
Dein Tipp funktioniert leider nicht

LG tl2011
-
17.01.12 17:37 #7
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 chmeeGeä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 <-
-
hmm ich werds mal versuchen. Danke für die Hilfe
-
Leider gibt es da massive Probleme mit meinem Script. Ich kann das Script nur für die Textarea umbauen
-
17.01.12 20:21 #10
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 chmeeMein 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 <-
-
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.
-
18.01.12 16:50 #12
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.
(vorsicht, ist jetzt so hingekritzelt, könnte Fehler haben..)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 ( 13, 27, 119 );
// 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
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.
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?!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;
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 <-
-
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
-
18.01.12 19:43 #14
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 chmeeMein 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 <-
-
okay
Danke
Ähnliche Themen
-
Blätterfunktion umbauen?
Von louS im Forum PHPAntworten: 15Letzter Beitrag: 21.10.09, 14:41 -
Slideshow-Script funktionell umbauen
Von =fire= im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 13.10.09, 08:00 -
Navigation umbauen für IE`s
Von Peter Klein im Forum CSSAntworten: 3Letzter Beitrag: 19.07.08, 22:59 -
string umbauen
Von Thomasio im Forum C/C++Antworten: 4Letzter Beitrag: 12.03.07, 17:12 -
Navigationsmenü umbauen
Von Romsl im Forum CSSAntworten: 8Letzter Beitrag: 01.04.06, 00:35



1Danke

Zitieren

Login





