php: Ternärer Operator gibt immer dasselbe Ergebnis aus
bearbeitet von
@@Rick
> ~~~ PHP
> 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.
> ~~~ PHP
> <td class='head" . ($_SESSION[$db_id]['order'] == 'ID' ? ($_SESSION[$db_id]['ascDESC'] == 'asc' ? ' asc' : ' desc') : '') . ">
> usw.
> ~~~
>
> Soll bedeuten, dass in dieser Spalte, falls sie sortiert wurde (dann liegt eine Sessionvariable mit Inhalt Spaltenname vor) eine Klasse asc oder desc angehängt wird, je nachdem, ob asc oder desc Inhalt einer weiteren Sessionvariablen ist.
>
> 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']`{:.language-php} 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](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-sort) am `th`(!!)-Element angeben. Eine Klasse brauchst du dann nicht; die Informationkannst 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.
>
> ~~~ CSS
> /* 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`{:.language-css} mit 2 Doppelpunkten, um sie von Pseudoklassen (mit 1 Doppelpunkt) unterscheiden zu können. (Aus Gründen der Abwärtskompatibilität wird `:after`{:.language-css} weiterhin interpretiert, aber schreiben sollte man das nicht mehr.)
🖖 Живіть довго і процвітайте
{:@uk}
--
*„Ukončete, prosím, výstup a nástup, dveře se zavírají.“*{:@cs}
php: Ternärer Operator gibt immer dasselbe Ergebnis aus
bearbeitet von
@@Rick
> Hallo,
>
> ich habe in einem Tabellekopf eine ternäre Bedingung eingebaut, um diese zu lernen.
>
> ~~~ PHP
> echo ("<table class='eingangsRG' width='100%' border='0' cellpadding='4' cellspacing='1'>
> <thead>
> <tr>
> <td class='head" . ($_SESSION[$db_id]['order'] == 'ID' ? ($_SESSION[$db_id]['ascDESC'] == 'asc' ? ' asc' : ' desc') : '') . ">
> usw.
> ~~~
>
> Soll bedeuten, dass in dieser Spalte, falls sie sortiert wurde (dann liegt eine Sessionvariable mit Inhalt Spaltenname vor) eine Klasse asc oder desc angehängt wird, je nachdem, ob asc oder desc Inhalt einer weiteren Sessionvariablen ist.
>
> 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']`{:.language-php} 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](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-sort) am `th`(!!)-Element angeben. Eine Klasse brauchst du dann nicht; die Informationkannst 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.
>
> ~~~ CSS
> /* 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`{:.language-css} mit 2 Doppelpunkten, um sie von Pseudoklassen (mit 1 Doppelpunkt) unterscheiden zu können. (Aus Gründen der Abwärtskompatibilität wird `:after`{:.language-css} weiterhin interpretiert, aber schreiben sollte man das nicht mehr.)
🖖 Живіть довго і процвітайте
{:@uk}
--
*„Ukončete, prosím, výstup a nástup, dveře se zavírají.“*{:@cs}
php: Ternärer Operator gibt immer dasselbe Ergebnis aus
bearbeitet von
@@Rick
> Hallo,
>
> ich habe in einem Tabellekopf eine ternäre Bedingung eingebaut, um diese zu lernen.
>
> ~~~ PHP
> echo ("<table class='eingangsRG' width='100%' border='0' cellpadding='4' cellspacing='1'>
> <thead>
> <tr>
> <td class='head" . ($_SESSION[$db_id]['order'] == 'ID' ? ($_SESSION[$db_id]['ascDESC'] == 'asc' ? ' asc' : ' desc') : '') . ">
> usw.
> ~~~
>
> Soll bedeuten, dass in dieser Spalte, falls sie sortiert wurde (dann liegt eine Sessionvariable mit Inhalt Spaltenname vor) eine Klasse asc oder desc angehängt wird, je nachdem, ob asc oder desc Inhalt einer weiteren Sessionvariablen ist.
>
> 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']`{:.language-php} 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](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-sort) am `th`(!!)-Element angeben. Eine Klasse brauchst du dann nicht; die Informationkannst 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.
>
> ~~~ CSS
> /* 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`{:.language-css} 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.)
🖖 Живіть довго і процвітайте
{:@uk}
--
*„Ukončete, prosím, výstup a nástup, dveře se zavírají.“*{:@cs}