![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Programmierung > Javascript+PHP+MySQL: Personen auswählen | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
1 -2- | [ - Beitrag schreiben - ] |
24.01.2011, 19:09 Uhr bruZard Posts: 307 Nutzer |
Kann er auch nicht, habe ja keinen funktionierenden Code gepostet. Aber der hier geht:code:--function openWin(width, height){ var win = $('#window'); $('#modalOverlay').fadeTo('slow', 0.7); if(width > 0 && height > 0){ win.css({ 'width' : width + 'px', 'height' : height + 'px', 'left' : '50%', 'top' : '50%', 'margin-left' : '-' + (width / 2) + 'px', 'margin-top' : '-' + (height / 2) + 'px' }); } win.fadeIn(); } PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 19:15 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: ah jetzt ja, btw, was bedeuten eigentlich die $-Zeichen? Ist das der Aufruf von JQuery? -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 19:23 Uhr bruZard Posts: 307 Nutzer |
Das ist ein Selektor, das Original aus JavaScript wäre: code:In jQuery schreibt man halt einfach "var meinDiv = $('#meinDiv')" und erhält das Objecthandle auf ein Element mit der ID "meinDiv". an muss das Objekt aber nicht in eine Variable übertragen (var meinDiv =).var meinDiv = window.document.getElementByID("meinDiv"); etc. Man kann auch Klassen selektierten, dann muss man die Raute durch einen Punkt ersetzen. Hierbei ist aber zu beachten dass Klassen mehrfach in einem Dokument vorkommen können und man deshalb kein Objekt, sondern ein Objekt-Array zurück bekommt. Ein Sonderfall ist Ajax. Hier selektiert man nichts mit dem $ sondern ruft die Methode "ajax()" aus dem Objekt "$" auf. Als Parameter übergibt man der Method ein JSON Objekt. Bspw: { url : 'meinScript.php', method : 'POST' } Einen Ajax Request auf die klassische Art, also ohne Framework, zu basteln grenzt an Selbstverstümmelung ![]() Die Dokumentation von jQuery ist sehr gut und ausführlich, zudem gibt es fantanstillionen viele Tutorials dazu. [ Dieser Beitrag wurde von bruZard am 24.01.2011 um 19:23 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 19:34 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: suppa, ich lerne hier gerne weiter. was ist denn das objekt "$"? was hat es damit auf sich? -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ Dieser Beitrag wurde von AGSzabo am 24.01.2011 um 19:35 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 19:49 Uhr bruZard Posts: 307 Nutzer |
jQuery macht Folgendes: Es erweitert alle HTML Objekte um Eigenschaften und Methoden. Beispielsweise kannst Du nur mit JavaScript nicht einfach "window.width;" schreiben um die Fensterbreite zu ermitteln. Die Eigenschaft "width" wird erst durch jQuery dem Objekt "window" hinzugefügt. Das Objekt "$" ist sozusagen das "MasterObject", es beinhaltet Methoden um Browser-übergreifend auf die Elemente des DOM zuzugreifen und diesen zu manipulieren. ein "$('#meinDiv');" definiert durch die Art des Parameters dass Du gern das Objekt zu "meinDiv" haben möchtest das all die fantastischen Methoden hat die Dumit purem JavaScript erst alle selbst programmieren müsstest. Das MasterObject hat aber auch Methoden die nicht an ein Element des DOM gebunden sind, wie eben die Methode "ajax" die es crossplatform ermöglicht ein PHP Script aufzurufen, Daten zu übergeben und den Output des Scripts zurück zu bekommen. Alles was das PHP Script per "echo" ausgibt kommt als Rückgabewert zurück. -- PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 19:54 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: ist ja super. wenn das projekt verwirklicht wird, kommt jquery mit rein. das ist klar. :-) -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 20:15 Uhr AGSzabo Posts: 1663 Nutzer |
kannst du mir beschreiben wie ich dieses jquery-plugin ansprechen kann um mal zu sehen wie es löppt? https://github.com/appsinyourpants/jquery-plugins/blob/master/jquery.tagify.js -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 20:16 Uhr bruZard Posts: 307 Nutzer |
Einfach nach jQuery einbinden. Es fügt sich nahtlos ein. -- PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 20:23 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: gut. wie rufe ich es auf? muss ich meiner textarea etwas hinzufügen od erso? -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 20:27 Uhr bruZard Posts: 307 Nutzer |
Ich finde keine Dokumentation zu diesem Plugin, somit ist es recht schwer hilfreich zu sein. -- PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 21:03 Uhr AGSzabo Posts: 1663 Nutzer |
ich hab jetzt das da in angriff genommen: http://www.devbridge.com/projects/autocomplete/jquery/ und das ist mein code, geht aber nicht, kannst du mir beschreiben wieso? code:--<!DOCTYPE html> <html> <head> <title>Member-Search</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.autocomplete.js"></script> <script type="text/javascript"> function init() { var a; jQuery(function(){ a = $('#query').autocomplete( lookup: ['January', 'February', 'March', 'April', 'May'] //local lookup values ); }); } window.onload = init; </script> </head> <body> <input type="text" name="q" id="query" /> </body> </html> Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 21:12 Uhr bruZard Posts: 307 Nutzer |
Steht in der Doku: "Autocomplete must be initialized after DOM has finished loading." Das heißt Du musst Deinen Code so erweitern dass der Kram erst verfügbar ist wenn das DOM fertig geladen wurde: code:--$(document).ready(function(){ /* Hier kommt Dein Code rein, er wird erst ausgeführt wenn wirklich das gesamte Dokument beim User im Browser angekommen ist */ }); PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 21:21 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: hmm, nö, das tut es nicht. ich hab es ja auch mit window.onload versucht, aber mit deinem beispiel geht es auch nicht. ![]() -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 21:22 Uhr bruZard Posts: 307 Nutzer |
Das zu checken schaffe ich heute nicht mehr. Ich poste hier morgen die Lösung. -- PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 21:24 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: sehr vielen dank, :-) -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
24.01.2011, 21:51 Uhr AGSzabo Posts: 1663 Nutzer |
ok, ich habs hinbekommen. ich hatte eine klammer vergessen. grml -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
25.01.2011, 09:46 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: neues problem: ich habe versucht eine rückgabe per php script zu implementieren. es tut sich aber nix in der textarea. (es geht immernoch um http://www.devbridge.com/projects/autocomplete/jquery/ ) hier mein javascript code: javascript code:$(document).ready(function(){ $(function(){ $('#query').autocomplete({ onSelect: function(value, data){ alert('You selected: ' + value + ', ' + data); }, width: 300, delimiter: /(,|;)s*/, serviceUrl:'json_get.php' }); }); }); und das zugehörige php script auf dem server (json_get.php): php code:<?php echo "{query:'Li',suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'],data:['LR','LY','LI','LT']}"; ?> -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ Dieser Beitrag wurde von AGSzabo am 25.01.2011 um 09:48 Uhr geändert. ] [ Dieser Beitrag wurde von AGSzabo am 25.01.2011 um 13:58 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
25.01.2011, 15:40 Uhr bruZard Posts: 307 Nutzer |
Bei mir funktioniert es. HTML: code:<input type="text" name="search" id="searchText"> JS: code:$(window).ready(function(){ $('#searchText').autocomplete({ serviceUrl : "ac.php" }); }); PHP: code:--<?php echo "{ query : 'Kl', suggestions : ['Klaus', 'Klasse', 'Kloß'] }"; ?> PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
25.01.2011, 16:09 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: ich habe entdeckt dass der case des zurückgelieferten "query:" wertes mit der eingabe übereinstimmen muß. -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
25.01.2011, 16:17 Uhr AGSzabo Posts: 1663 Nutzer |
ich frage mich wozu es überhaupt gut sein soll, daß die originale eingabe zurückgeliefert werden muss, hast du eine idee? -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
25.01.2011, 16:37 Uhr bruZard Posts: 307 Nutzer |
Warum das JSON Objekt unbedingt das Query beinhalten muss kann ich dir nicht sagen. Prinzipiell funktioniert das Ganze aber so: In PHP kommt per GET folgendes an:code:Nun kannst Du in Deiner Datenbank nach "Suggestions" suchen ...$query = $_GET["query"]; code:...und mit der Rückgabe Dein JSON Objekt zusammenbasteln...$result = MYSQL_QUERY("SELECT * FROM myTable WHERE name LIKE '$query%' ORDER BY name ASC"); code:Dieser Code ist nicht getestet!while($row = MYSQL_FETCH_OBJECT($result)) { $sug.= "'".$row->name."',"; } $sug = substr($sug, strlen($sug) - 2); // letztes Komma und Hochkomma abschneiden echo "{ query : '$query', suggestions : [ $sug ] }"; -- PanzerZ | methusalem | basic [ Dieser Beitrag wurde von bruZard am 25.01.2011 um 16:37 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
25.01.2011, 16:41 Uhr AGSzabo Posts: 1663 Nutzer |
@bruZard: imo darf man das letzte hochkomma nicht abschneiden. nur das letzte komma. -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
25.01.2011, 16:43 Uhr bruZard Posts: 307 Nutzer |
Logisch, mein Fehler. -- PanzerZ | methusalem | basic [ - Antworten - Zitieren - Direktlink - ] |
26.01.2011, 14:08 Uhr AGSzabo Posts: 1663 Nutzer |
ich bin eine lösung näher gekommen. mir schwebt da folgendes vor: bei mir kann eine person mehrere nicknames haben, aber nicht unbedingt einen realnamen. ich könnte einen nicknamen einer person in der nicks-tabelle suchen und hätte damit über einen foreignkey die id der person (im Bild "AUTHOR": http://janeway.quicktunnels.net/janeway.png ) und kann alle ihre weiteren nicks duch die selbe id in der nicks-liste finden und diese namenstrings zu einem verbundenen string (zB "AGS / Andy Silva") an ajax zurückliefern. das selbe spielchen muss ich aber vorher mit allen treffern machen und für die treffer ein array anlegen und dieses dann per json zurücksenden. ich weis nicht ob das praktisch ist. ein anderers ansatz wäre, zur laufzeit eine tabelle im speicher anzulegen, in der für jede person ihre nicknamen schon zu einem namen verbunden sind und die mit der personentabelle 1:1 verknüpft ist. auf diese weise habe ich ohne umstände alle namensinformationen zu einer person auf einmal, während ich die nach der ersten methode erst mühsam zusammen suchen müsste. oder? welche methode ist besser? und was kann ich tun wenn mal ein nickname zweimal vor kommt (für zwei verschiedene personen)? -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ Dieser Beitrag wurde von AGSzabo am 26.01.2011 um 14:23 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
29.01.2011, 21:33 Uhr AGSzabo Posts: 1663 Nutzer |
hier geht es weiter: http://www.amiga-news.de/forum/thread.php?id=33687&start=1&BoardID=7#346454 -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
02.02.2011, 09:25 Uhr ChrisP Posts: 985 Nutzer |
Zitat: Ich bin noch nicht dazu gekommen, aber wie es aussieht, hast du ohnehin schon eine andere Loesung gefunden, richtig? -- Suche Amiga 2500UX [ - Antworten - Zitieren - Direktlink - ] |
02.02.2011, 09:38 Uhr AGSzabo Posts: 1663 Nutzer |
@ChrisP: richtig. :-) -- Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
1 -2- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Javascript+PHP+MySQL: Personen auswählen | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten. |
![]() |