Moin!
Wenn ich nun auf ein Feld der Tabelle klicke (werden mit Links unterlegt sein) möchte ich, dass alle zu dem Feld gehörende relevanten Daten gehighlighted werden (die Zugehörigkeiten der Daten sind via Zwischentabellen in der Datenbank gespeichert): und zwar einmal mit verschiedenen Schrifttypen und je nach Thematik mit verschiedenen background Farben. Gleichzeitig sollen alle anderen Daten zwar noch angezeigt werden aber eher schwach dargestellt.
Diese Aufgabenstellung ist erstmal ein reines Anzeigeproblem. Es hat deshalb primär nur mit HTML, CSS und Javascript zu tun, nicht jedoch mit der Datenbank oder PHP.
Insofern ist deine Einordnung in diese Themengebiete eher falsch. Wobei du natürlich immer eine relativ einfache Javascript-Operation (vor allem mit einem JS-Framework wie z.B. jQuery) ersetzen kannst durch das komplette Neuladen der HTML-Seite, nur mit neuen Parametern. Und sich so die Anzeigeproblematik hin zu PHP verlagert.
Wenn du das schlecht machst, muss dein User unverhältnismäßig lange warten, und du selbst hast hohen Aufwand, das in PHP zu programmieren. Wenn du es gut machst, ist deine PHP-Lösung bestens geeignet, als Fallback für den Fall abgeschalteten Javascripts zu dienen, andernfalls wird die auf identischem HTML mit identischem CSS arbeitende Javascript-Lösung genommen.
Was genau du aber nun tun willst, hast du noch nicht genau genug beschrieben. Im Moment stelle ich mir vor, dass du einfach die entsprechende Tabellenzeile, die gewählt wird, irgendwie anders formatiert werden soll.
Das ist mit Javascript und CSS relativ simpel machbar. Von der TD, in die geklickt wird, gehst du im DOM eine Ebene hoch zum einschließenden TR, und setzt dort eine zusätzliche Klasse rein. In deinem CSS hast du für diesen TR-Zustand vorher einfach die gewünschte Formatierung definiert. Fertig ist die Hervorhebung.
Die entsprechenden Styles zu erstellen ist kein Problem. Ich frage mich nur ob es besser ist die Styles in die Datenbank zu schreiben, bzw. wie ich dann sowohl selected (für die relevanten Daten) und unselected (für den Rest) vernünftig auswählen kann und mir trotzdem noch alle Daten angezeigt werden.
Die Frage ist, was mit "selektiert" funktionsmäßig noch verbunden sein soll. Wenn du zu einem Datenbankeintrag die Info speichern willst "Du bist selektiert, oder nicht", dann wäre das als simples Binärfeld zu realisieren - für MySQL beispielsweise durch CHAR(1) mit den Zeichen "0" und "1".
Diese Selektierung muss dann aber für irgendwelche Prozesse eine Wichtigkeit haben. Also so wichtig sein, dass sie dauerhaft gespeichert werden muss. Nur für die Anzeige als Benutzerinteraktion ist sowas nicht zwingend notwendig.
- Sven Rautenberg