Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Rozwiązany][JavaScript]Split nie jest funkcją?
Forum PHP.pl > Forum > Przedszkole
Dapi
Witam.
Męczę się z bardzo niefajnym błędem JS. Mam funkcję:

Kod
function wykres(miejsce, tytul, slupki){
                
                slupki            = slupki.split(";");
                var szerokosc     = (550-5)/(slupki.length-1)-5;
                var najwiekszy     = 0;
                for(var n=0; n<(slupki.length-1); n++){
                    slupki2 = slupki[n].split('=%=');
                    if(parseFloat(slupki2[1]) > najwiekszy){
                        najwiekszy = parseFloat(slupki2[1]);
                    }
                }
    // coś tam dalej
}


zmienna slupki = "Poniedziałek=%=10;Sobota=%=2;Niedziela=%=26;"

Przy wykonywaniu funkcji dostaję błąd:
Cytat
TypeError: slupki.split is not a function
slupki2 = slupki.split('=%=');


Według moich ustaleń problemem jest pętla for, która wykonuje
Kod
slupki2 = slupki[n].split('=%=');

co przy pierwszym przerzuceniu pęli jest równe:
Kod
slupki2 = slupki[0].split('=%=');

a powinno (przynajmniej tak działa):
Kod
slupki2 = slupki['0'].split('=%=');

czyli z apostrofami. Tylko jak to zrobić?

Dodam, że na stronach pod innym adresem śmiga. Próbuję to zaimplementować do trzeciej i zaczyna się buntować.

Jak się z tym uporać?
melkorm
FireFox / Opera / Google Chrome - narzędzia deweloperskie

Konsola od javascriptu + console.log / console.debug i zobacz co masz pod tymi wartościami, a znajdziesz odpowiedź.
kamil4u
Dobrze jest: http://jsfiddle.net/rhW2R/
Błąd masz gdzie indziej.
pifarek
Zobacz czy te slupki sa typu String
[JAVASCRIPT] pobierz, plaintext
  1. alert(typeof slupki);
[JAVASCRIPT] pobierz, plaintext
Dapi
kamil4u, na stronie, którą linkujesz tak, ale niestety w przeglądarce niedziała, niewiedzieć czemu.
pifarek, pierwsze, przekazywane do funkcji string, drugie object
kamil4u
Umieść kod na dowolnym serwerze, gdzie kod, który podałeś/lub ten co ja podlinkowałem nie działa. Wtedy będzie można będzie rozmawiać. I ew. napisz pod jaką przeglądarką/systemem.

Na 99% błąd masz gdzie indziej. Spróbuj jeszcze zrobić twarde odświeżenie, czyli nie wczytując kodu z cache - ctrl+F5
Dapi
http://dapi.net.pl/testowy/
Nie działa pod FF15.01, nie działa pod najnowszą chromką, reszty nie sprawdzałem.
kamil4u
Inny kod dajesz na forum inny tam i dziwisz się, że Ci nie działa. Musisz być uważniejszy. Ma być: slupki[n].split, a nie slupki.split.
Dapi
W drugim slupki[n].split, w pierwszym slupki.split.
W drugim [n], bo to pętla, w pierwszym bez, bo slupki są jeszcze typu string.

EDIT:
teraz widzę, coś mi wycina "[n]" z kodu, staram się namierzyć co, bo najpewniej wina leży po stronie systemu szablonów.
kamil4u
Chyba się nie dogadamy....

http://dapi.net.pl/testowy/
Linia 26: slupki2 = slupki.split('=%='); -> ma być z [n]
Linia 37: slupki2 = slupki.split("=%="); -> ma być z [n]

Pomyśl dlaczego smile.gif, a jak nie wymyślisz to pytaj

--edit--
No właśnie - problem na pewno leży w tym, bo u mnie lokalnie działa smile.gif
Dapi
Wiem już wszystko smile.gif

Problemy powodowało:
  1. $html = preg_replace('#\[([a-z0-9\-_]*?)\]#Ssie', '( ( isset($lang[\'\1\']) ) ? $lang[\'\1\'] : \'\' );', $html);


A ja pracowałem na pliku nie przyglądając się zbytnio temu, co dostaje przeglądarka i przeoczyłem.
Czasami rozwiązanie jest banalne, ale potrzeba spojrzenia kogoś z boku. W każdym bądź razie dzięki wink.gif
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.