Diskuze: Seřazení dat z multidimenzionálního pole do více tabulek
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Je to nesrozumitelne. Vynech slovo modal a jina, ktera v cestine neexistuji a
zkus to znova. Bootstrap sice pouzivam, ale jen na zaklade znalosti html, css.
Vzdycky si prislusne class a nazvy komponent vyhledavam pres okumentaci Takze, treba mi modal nic
nerekne.
A dal teda neni vubec jasne, o co jde.
Rekneme, ze mas nejakou tabulku. U ni zobrazujes zkracenou verzi pres php. A
pak mas neco, co na onmouseover nebo onlick zobrazi podrobnosti. Tak to vubec
netusim, jak se v bootstrapu dela Nejspis bych volal ajax.
Nebo bych se na moduly bootstrapu vykaslal a obe tabulky si nacetl do js a
filtroval to v js. Neco jako tohle, netestovano, pseudokod
var tab1, tab2;
tab1 = [
1, 3, 4
]
tab2 = [
1, 5, 6, 7, 8
]
zobrazTab(id0, tab0) // kde do tr pridam data-id = tab1[i][0], id ve sloupci 0 stejne pro tab1 i tab2
id0.onmouseover = zobraz2;
function.zobraz2(event)
{
event = event ? event : window.event;
el = event.target;
el = el.nodeName == 'TR' ? el : el.parentNode;
if (el.nodeName == 'TR' && typeof el.dataset.id != 'undefined') //https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset
{
zobrazTab(id1, tab1,
{
0: el.dataset.id
})
} // {cislo_sloupce: value, cislo_sloupce: value, cislo_sloupce: value}
// a zobrazTab bude mit pak funkci na fitrovani, cyklus
function zobrazTab(id, data, filter)
var str, row, radky, i, j, bool;
radky = [];
// filter
if (filter) cyklus(data) // for i=0; i<data.length; i++
{
row = data[i];
bool = true;
cyklus(filter) // for j in filter
{
bool &= filter[j] == row[j];
} // true, kdyz se rovna, false, kdyz ne
if (bool)
{
radky[radky.length] = row;
}
}
else radky = data;
// zobrazeni tab
cyklus(radky)...generuj html kod / str = '<table><tr data...>...</table>';
// document.getElementById(id).innerHTML = str;
A melo by to fungovat tak, ze si zobrazis tab 1. Do html kodu si budes pridavat <tr data-id=idecko>. Onmouseover nad tabulkou spusti js kod, ktery se pokusi to id vycist a na zaklade toho vyfiltruje druhou tabulku, kterou zobrazi treba vedle. Nebo ji nechas plovouci. To by mozna mohl umet uz bootstrap.
Ps. jeste mala uprava, formatovani https://www.danstools.com/…pt-beautify/
Je to úplně jednoduchý.
Představ si multidimenzionální pole a když ho zobrazíš funkcí print_r(),
tak dostaneš tohle:
Array
(
[5] => Array
(
[0] => Array
(
[id] => 1
[activity] => 1. aktivita
[number_of_participants] => Neomezený
[price] => 0
[day] => Čtvrtek
[description] => egeg
[name] => 1. účastník
[email] => [email protected]
[telNumber] => 84564556456464564
[dateOfEvent] => 2018-11-24
)
)
[6] => Array
(
[0] => Array
(
[id] => 2
[activity] => 2. aktivita
[number_of_participants] => Neomezený
[price] => 0
[day] => Čtvrtek
[description] => egeg
[name] => 2. účastník
[email] => [email protected]
[telNumber] => 845645564564645642
[dateOfEvent] => 2018-11-24
)
[1] => Array
(
[id] => 3
[activity] => 2. aktivita
[number_of_participants] => Neomezený
[price] => 0
[day] => Čtvrtek
[description] => egeg
[name] => 3. účastník
[email] => [email protected]
[telNumber] => 845645564564645642
[dateOfEvent] => 2018-11-24
)
)
)
Takže to vypisuje array se třema dimenzema.
Kdybych chtěl toto multidimenzionální pole vypsat do tabulek, byly by 2. A v
jedné tabulce by byl pouze jeden řádek a ve druhé dva. A v těch by byly
údaje jako ID, activity, day, apod.
Už je to jasnější?
Možná to nevyřeší tvůj problém, ale můžu se zeptat proč máš v metodě displsyfreespacemodals funkci groupArray? Není to náhodou porušení principu OOP?
Ve skutečnosti ji tam nemám, tady jí mám jen pro větší přehlednost.
Zobrazeno 5 zpráv z 5.