Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Problem ze zmienną i each
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
dziolecki
Hej, mam problem z użyciem zmiennej w funkcji each().

Kod
var mebel_konf = {
tkanina_typ: "jednolite"
}

Kod
$.each(data.mebel_konf["tkanina_typ"], function(key, value)
{

...

});


Wywala
Cytat
Uncaught TypeError: Cannot read property 'tkanina_typ' of undefined
trueblue
Po co chcesz iterować po tej właściwości?
Wartość jest po prostu pod: mebel_konf.tkanina_typ, nie trzeba do tego iteracji.
dziolecki
Hej, dzięki za odpowiedź. Niestety, nie działa.
Błąd jaki otrzymuje to:
Cytat
Cannot use 'in' operator to search for '8' in jednolite


nospor
To moze pokazesz aktualny kod?
Bo na chwile obecna wynika, ze probujesz leciec forem po tekscie "jednolite" ...
dziolecki
Proszę uprzejmie:

Kod
$.ajax({
                    url: path_to_data + "tkaniny.json",
                    dataType: "json",
                    type: "GET",
                    cache: false,

                    success: function (data)
                    {
                        if(mebel_konf["tkanina_dodatkowa"] == "")
                        {
                            ...
                        }
                        else
                        {
                            $.each(data.mebel_konf.tkanina_typ, function(key, value)
                            {
                                if(value.gallery_image_description == mebel_konf["tkanina_dodatkowa"])
                                {
                                    ...
                                }
                            });
                        }
                    }
                });


JSON:

Kod
{"jednolite":[{
"id_image":"1193","id_gallery":"1","language_id":"1","gallery_image":"Tkaniny/Tula 5.jpg","gallery_image_sort":"0","gallery_image_description":"Tula 05","gallery_image_alt":""},{"id_image":"1194","id_gallery":"1","language_id":"1","gallery_image":"Tkaniny/Tula 6.jpg","gallery_image_sort":"0","gallery_image_description":"Tula 06","gallery_image_alt":""}],
"wzorzyste":[{"id_image":"1034","id_gallery":"4","language_id":"1","gallery_image":"tkaninywzorzyste/Amazon__1.jpg","gallery_image_sort":"0","gallery_image_description":"AMAZON 1","gallery_image_alt":""},{"id_image":"1035","id_gallery":"4","language_id":"1","gallery_image":"tkaninywzorzyste/Amazon__16.jpg","gallery_image_sort":"0","gallery_image_description":"AMAZON 16","gallery_image_alt":""}]}
nospor
A blad
Cannot use 'in' operator to search for '8' in jednolite
ktorej dokladnie linii dotyczy?
dziolecki
Myślę, że chodzi o to:

Kod
var mebel_konf =
    {
        typ: "",
        model: "",
        sprezyna: "",
        pojemnik: "",
        funkcja_spania: "",
        automat: "",
        zaglowek: "",
        mozliwosc_zaglowek: "",
        tkanina_typ: "jednolite",
        tkanina_glowna: "",
        tkanina_dodatkowa: ""
    }


"tkanina typ" = "jednolite"
nospor
Nie mysl. Sprawdz. W konsoli razem z bledem masz dokladnie podane ktorej linii blad dotyczy
dziolecki
Dotyczy to 196 linii kodu, czyli dokładnie tej:

Kod
$.each(data.mebel_konf.tkanina_typ, function(key, value)
viking
To jeszcze raz. Po co chcesz iterować po stringu 'jednolite'?
dziolecki
W pliku JSON mam zapisane różne typy tkanin "jednolite", "wzorzyste", "photoprint". W zmiennej tkanina_typ jest zapisany typ tkaniny, do którego się odwołać, aby pobrać dane.
nospor
Wyglada na to ze twoje data (lub data.mebel_konf.tkanina_typ) to nie obiekt JSON a poprostu tekst. Wpierw musisz to przekonwertowac na obiekt JSON
dziolecki
Jeżeli ręcznie wpiszę typ tkaniny np:

Kod
$.each(data.jednolite, function(key, value)


To działa
nospor
Masz niesamowite zdolnosci do nieopisywania poprawnie problemu...

Ty przeciez chciales zrobic tak:

data[mebel_konf.tkanina_typ]
viking
To czym są te zmienne? Bo raz podałeś var mebel_konf który zawiera tkanina_typ: "jednolite", a drugi raz json z wartością jednolite który jest tablicą.
dziolecki
Nie rozumiemy się Panowie.
W pliku JSON mam tablice "jednolite", "wzorzyste", "photoprint", w których są zapisane dane tkaniny (nazwa, zdjęcie).
W zmiennej tkanina_typ zapisany jest nazwa tablicy w JSON, do której trzeba się odwołać, aby pobrać dane (nazwa, zdjęcie).

Czyli, jeżeli tkanina_typ = "jednolite" to pobieramy w pliku JSON (tkaniny.json) dane z tablicy "jednolite".
Jeżeli tkanina_typ = "wzorzyste" to analogicznie pobieramy dane z tablicy "wzorzyste".

nospor
Przeciez podalem ci rozwiazanie

data[mebel_konf.tkanina_typ]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.