Gunnar Bittersmann: php: Ternärer Operator gibt immer dasselbe Ergebnis aus

Beitrag lesen

@@Rick

echo ("<table class='eingangsRG' width='100%' border='0' cellpadding='4' cellspacing='1'>

Was hat width='100%' border='0' cellpadding='4' cellspacing='1' im Markup zu suchen? Weg damit! Für die Darstellung ist CSS da.

<td class='head" . ($_SESSION[$db_id]['order'] == 'ID' ? ($_SESSION[$db_id]['ascDESC'] == 'asc' ? ' asc' : ' desc') : '') . ">
usw.

Das Sortieren funktioniert auch, aber ich erhalten dennoch immer die Klasse 'desc' angehängt.

Was habe ich im ternären Ausdruck falsch gemacht?

Nichts, was zu sehen wäre. Was steht denn in $_SESSION[$db_id]['ascDESC'] drin?

Ich weiß, dass man th anstelle td nutzt, sowie html-code nicht in php notieren sollte. Daher meine Bitte, das jetzt mal außen vor zu lassen.

Warum machst du es dann nicht richtig?

Die Sortierung solltest du mittels aria-sort-Attribut am th(!!)-Element angeben. Eine Klasse brauchst du dann nicht; die Information kannst du auch zum Stylen, d.h. für die Pfeile nutzen.

Hier nur mal einer von unzähligen Versuchen, wie es bei mir nicht geklappt hat.

/* Pseudo-Elemente für die aufsteigende/descendig Dreiecke */
.mytable thead .asc:after {
  content: '▲';
}
.mytable thead .desc:after {
  content: '▼';
}

Unzählige Versuche, das mittels Entwicklertool im Browser herauszufinden, hast du aber nicht angestellt? Du hättest darauf kommen können, dass du keine Elemente mit den Klassen asc und desc hast.

Übrigens schreibt man Pseudoelemente wie ::after mit 2 Doppelpunkten, um sie von Pseudoklassen (mit 1 Doppelpunkt) unterscheiden zu können. (Aus Gründen der Abwärtskompatibilität wird :after weiterhin interpretiert, aber schreiben sollte man das nicht mehr.)

🖖 Живіть довго і процвітайте

--
„Ukončete, prosím, výstup a nástup, dveře se zavírají.“