rumbledom
Goto Top

JQuery Autocomplete Ergebnisse aus zwei Tabellen anzeigen

Bitte um einen Lösungsansatz für mein Problem.

Ich habe zwei verschiedene Tabellen einer Datenbank, welche ich mittels einem Formularfeld (jQuery Autocomplete) abfragen und nebeneinander als Spalte anzeigen lassen möchte.

Das Ergebniss sollte dann ca. so aussehen:

-----------------------------------------
| Formularfeld                          |
-----------------------------------------
| Ergebnisse        | Ergebnisse        |
| aus Tabelle 1     | aus Tabelle 2     |
|                   |                   |
|                   |                   |
-----------------------------------------

Leider finde ich nicht wirklich einen möglichen Lösungsweg für den Javascript-Code sowie die CSS-Formatierung. Kann mir hierzu jemand einen Tipp geben, nach was ich recherchieren sollte oder wie man das ggf. lösen könnte?

Gruß, rumble

Content-Key: 203770

Url: https://administrator.de/contentid/203770

Printed on: April 26, 2024 at 14:04 o'clock

Member: nxclass
nxclass Mar 22, 2013 at 10:04:50 (UTC)
Goto Top
... das ist schon eine sehr spezielle Art einer "Autocomplete" Anzeige - ich glaube nicht das sowas irgendwo in einem Forum mal fix zu finden ist. (ich gehe auch mal davon aus, dass Du schon mal gesucht hast)

An dieser Stelle wirst Du wohl ein eigenes JQuery Plugin bauen müssen - was ja eigentlich auch nicht so schwer sein sollte.

Dein Plugin müsste
  • prüfen ob eine Eingabe erfolgte (onkeypresed)
  • die Daten aus der DB holen
  • ein Div Element mit 2 "Kind" Divs und deren Inhalt anzeigen
  • bei einem click auf eines der Inhalte dieses in das Formularfeld eintragen
Member: Mondragor
Mondragor Apr 18, 2013 updated at 13:11:57 (UTC)
Goto Top
Hallo rumble,

ich bin mir nicht sicher, ob ich 100 %ig verstehe, was Du genau erreichen willst.
Es ist ja ersteinmal nicht unwichtig, was dann mit dieser Ausgabe passieren soll, die Du da exemplarisch hingeschrieben hast.
Ein Formularfeld wird mit der JQuery Autocomplete ja nach unten durch ein "div" erweitert, in dem die Ergebnisse aufgelistet sind. Wenn es nun nur darum geht, Ergebnisse aus 2 Tabellen abzubilden, ist das kein Problem, denn die Zuweisung zum Formularfeld sieht ja so aus:
$("input#formularfeld").autocomplete(
{
source: "bezeichnung.php"
});
und was Du in "bezeichnung.php" tust, ist Dir ja überlassen, solang Du einen sauberen JSON String erzeugst...
Es ist nur an der Stelle wichtig, was Du eigentlich vorhast, weil sowas ja im Grunde nur eine Ausgabe in der Auswahl ist.
Der Klick auf eine Zeile würde also beide Spalten dem Formularfeld zuweisen.
Warum also sollen es denn überhaupt 2 Spalten sein? Was ist, wenn Du für die Eingabe aus beiden Tabellen verschieden viele Ergebnisse bekommst? Besteht ein Zusammenhang von den Ergebnissen, die Du aus Tabelle 1 und Tabelle 2 erwartest oder warum willst Du sie ausgerechnet nebeneinander darstellen?
Wenn das nebeneinander gar nicht so wichtig wäre, könnte man nämlich beispielsweise SQL UNION benutzen, um aus 2 Abfragen 1 Ergebnisspalte zu bekommen...
Also was genau hast Du vor?