• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

specyficzna tablica JS

Object Storage Arubacloud
+1 głos
236 wizyt
pytanie zadane 9 lipca 2020 w JavaScript przez KumberTwo Dyskutant (8,270 p.)

Cześć, chciałbym stworzyć tablicę dwuwymiarową - pod i-tym indeksem znajdują się dane z bazy danych o id = i. Dane te mam zapisane w dwuwymiarowej tablicy asocjacyjnej w php - data. Mój kod wygląda tak:

       echo "<script>";
       echo 'var tab = [];';
       for($v = 0; $v < $rezultat->num_rows; $v++)
       {
         echo 'tab['.$data[$v]['id_wydarzenia'].'] = [3];';
         echo 'tab['.$data[$v]['id_wydarzenia'].'][0] = '.$data[$v]['id_uzytkownika'].';';
         echo 'tab['.$data[$v]['id_wydarzenia'].'][1] = '.$data[$v]['data'].';';
         echo 'tab['.$data[$v]['id_wydarzenia'].'][2] = '.$data[$v]['godzina'].';';
       }
       echo "</script>";

Niestety po napisaniu tego strona przestała działać :( Jak to powinienem zrobić? (Jestem dopiero początkujący jeśli chodzi o js)

komentarz 9 lipca 2020 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
To jest JS?
komentarz 9 lipca 2020 przez Comandeer Guru (601,110 p.)

@KumberTwo, co rzuca konsola?

komentarz 10 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)

@Paweł Nąckiewicz,
 piszę w php, ale problem mam z samym javascriptem więc do tytułu i kategorii pytania wybrałem js.

komentarz 10 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
Najpierw: Uncaught SyntaxError: expected expression, got '<'
A po kliknięciu w jakiś element: Uncaught ReferenceError: tab is not defined
Stąd moje pytanie czy jak zadeklaruję tablicę w tagach <script> to czy będzie ona widoczna w dalszej części dokumentu w kolejnych tagach <script>?
komentarz 14 lipca 2020 przez VBService Ekspert (253,340 p.)
edycja 14 lipca 2020 przez VBService

czy jak zadeklaruję tablicę w tagach <script> to czy będzie ona widoczna w dalszej części dokumentu w kolejnych tagach <script>?

Tak, będzie widoczna.

<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">

    <style>
        pre {
            display: block;
            width: 20vw;
            font: bold 14px/24px Monaco, Monospace !important;
            color: whitesmoke;
            background-color: black;
            background-image:-webkit-repeating-linear-gradient(top, darkgray 0px, gray 6px, black 48px);
            background-image:-moz-repeating-linear-gradient(top, darkgray 0px, gray 6px, black 44px);
            background-image:-ms-repeating-linear-gradient(top, darkgray 0px, gray 6px, black 44px);
            background-image: repeating-linear-gradient(top, darkgray 0px, gray 6px, black 44px);
            padding: 0em 1em;
        }
    </style>
    <script>
        let arr2d = [
            ['0-1', '0-2'],
            ['1-1', '1-2'],
            ['2-1', '2-2'],
            ['3-1', '3-2'],
            ['4-1', '4-2']
        ];
    </script>
    </head>
    <body>
        <pre></pre>

    <script>
        const pre = document.querySelector('pre');
        let html = "";

        for (let i=0; i<arr2d.length; ++i) {
            let d2 = arr2d[i];
            for (let j=0; j<d2.length; ++j) {
                html += `row[${i}][${j}] = ${d2[j]}\n`;
            }
        }
        pre.innerHTML = html;
    </script>
    </body>
    </html>

 

1 odpowiedź

0 głosów
odpowiedź 9 lipca 2020 przez Comandeer Guru (601,110 p.)
wybrane 5 sierpnia 2020 przez KumberTwo
 
Najlepsza
Nie widzę za bardzo sensu w próbie stworzenia takiej tablicy. IMO sensowniej będzie zrzucić to, co otrzymałeś z bazy danych, do formatu JSON.
komentarz 10 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
Szczerze mówiąc, nawet nie wiedziałem o istnieniu czegoś takiego. Dzięki. Chciałem zrobić taką tablicę, bo później muszę odebrać resztę informacji z bazy danych mając tylko id, a że nie jestem zbyt doświadczony (to mój pierwszy projekt, w którym korzystam z js a i tak próbowałem go omijać jak tylko się da) to wpadłem na taki dosyć dziwny pomysł trochę zaczerpnięty z rozwiązań zadań w c++.
komentarz 10 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)

@Comandeer,  zabrałem się za pisanie kodu i niestety stwierdzam, że sobie nie radzę :( Mógłbyś pokazać jak powinno wkładanie wszystkich rekordów do obiektu JSON? Poradniki jakoś do mnie nie przemawiają. Dzięki

1
komentarz 10 lipca 2020 przez Comandeer Guru (601,110 p.)

A co jest w $rezultat? Tablica zwrócona przez $query->fetchAll lub coś podobnego? Jeśli tak, to możliwe, że starczy po prostu

echo 'const results =' . json_encode( $rezultat ) . ';'

lub coś podobnego.

komentarz 12 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)

$rezultat to wynik funkcji $polaczenie->query() gdzie $polaczenie to obiekt mysqli. Niestety po wykonaniu tej linijki wciąż nie mogę (lub nie wiem) jak się odwołać do potrzebnej mi informacji.

Tak wygląda moja tabela (nie wiem czemu wyszła taka słaba jakość). Dysponuję id_wydarzenia i chcę się odwoływać do reszty informacji. Na próbę zrobiłem coś takiego: results['id_uzytkownika'][0], żeby sprawdzić czy coś w ogóle mogę wyciągnąć, ale nie działa :(

1
komentarz 12 lipca 2020 przez Comandeer Guru (601,110 p.)

Bo jak już to jest kolekcja rekordów, więc bardziej $results[0]['id_uzytkownika'].

Ogólnie to polecałbym sprawdzić, co siedzi w tej zmiennej, przy pomocy var_dump.

komentarz 15 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)
Niestety, gdy wypisuję w konsoli results[0]['id_uzytkownika']  to wyświetla się komunikat: Uncaught TypeError: results[0] is undefined.  Gdy wypisuję samo results dostaję: Object { current_field: null, field_count: null, lengths: null, num_rows: null, type: null }. To trochę dziwne zważywszy na to, że wyżej widnieje linijka: echo 'const results ='.json_encode($rezultat).';'; Masz może pomysł o co chodzi? sam na pewno tego nie rozwiążę bo zupełnie nie mam doświadczenia w js.

Dzięki
komentarz 15 lipca 2020 przez KumberTwo Dyskutant (8,270 p.)

W sumie to powstał już zupełnie nowy problem, więc dodałem nowe pytanie na forum, żeby było czytelniej.

Podobne pytania

0 głosów
1 odpowiedź 357 wizyt
pytanie zadane 3 maja 2018 w JavaScript przez Jake Obywatel (1,820 p.)
+1 głos
2 odpowiedzi 331 wizyt
+1 głos
1 odpowiedź 122 wizyt
pytanie zadane 12 sierpnia 2019 w JavaScript przez Maniek Bywalec (2,170 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...