![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 3 Dołączył: 30.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
łącze się z takim problemem iż mam funkcję do której przekazuję tablicę jako parametr, a dokładnie tablicę parametrów np: Kod var params = new Array(); params['p1'] = 1; params['p2'] = 2; params['text'] = 'text'; params['last_param'] = 0; function postParams( params ) { var params_string = ""; for(name in params) { params_string += "&"+name+"="+params[name]; } // i dalej przesylamy ajaxem parametry... } problem polega na tym, że w tej tablicy czasem w ostatnim elemencie przesyłają się nieporządane dane, typu params['nazwa_jakiejś_funkcji'] = cialo_jakiejś_funkcji (IMG:style_emoticons/default/blinksmiley.gif) przykład: Kod ajax_post.php?p1=1&p2=2&text=text&remove=function (b) { var a = this.indexOf(b); if (a != -1) { this.splice(a, 1); } return this; }&sortDates=function () { return this.sort(function (a, b) {return a.getTime() - b.getTime();}); }&last_param=0 i z niewinnie wyglądającej tablicy tworzy mi się jakiś potwór!? (IMG:style_emoticons/default/blinksmiley.gif) Czy to może być związane z przeglądaniem tablicy for'em ? Jak to jest możliwe że w wyjściowym stringu oprócz zdefiniowanych parametrów mam jeszcze jakiś szit? Z góry dzięki za odp! Pozdrawiam. Ten post edytował iwosz 28.01.2011, 13:28:06 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat tak? to jakiś absurd... To jest normalne zachowanie - tablica w JS nie przechowuje pary klucz=>wartość, tylko same wartości (z liczbą porządkową jako kluczem), gdy ty próbujesz coś takiego
to masz tablicę. Gdy robisz tak:
To już nie przyporządkowujesz wartości w tablicy, tylko właściwości obiektu typu Array. A to już zupełnie inna rzecz. Pętla for () in () działa tutaj dlatego że przechodzi przez wszystkie metody i właściwości w obiekcie (bez znaczenia na klasę). Sprawdź sobie wartość length tej tablicy - powinieneś zrozumieć. A dalej nie rozumiem dlaczego dostajesz dodatkowe metody - pewnie dopisujesz je gdzieś wcześniej, albo to pochodna jakiegoś FW. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 15:49 |