Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

[jQuery][AJAX]Wysyłanie tablicy za pomocą $.post

Tworzenie dynamicznych stron internetowych z zastosowaniem JavaScript, jQuery, Ajax. Dowiedz się jak to zrobić, znajdź rozwiązania swoich problemów.

[jQuery][AJAX]Wysyłanie tablicy za pomocą $.post

Post 14.07.2008, 15:13:31

Witam. Mam na stronie formularz oraz następujący kod JS:
Kod: Zaznacz cały
$("#przylacz input[@type = 'button']").click( function() {
         
   var tablica = new Array();
   $("#przylacz input").each( function() {
      tablica[$(this).attr("name")] = $(this).val();
   });
   $.post("przylacz.php", {"nowy": tablica}, function(data) {
      //cośtam
   }, "json");
         
});

Jak widać po kliknięciu na przycisk skrypt powinien pobierać wartości wpisane we wszystkich polach formularza i wpisywać je do tablicy, którą potem wysyła do skryptu php.

Problem polega na tym, że skrypt php w ogóle nie otrzymuje tej tablicy. Prosiłbym o pomoc i wyjaśnienie, co robię źle. Z góry dziękuję.

PS. Tablica w JS jest poprawnie tworzona i wypełniana wartościami, sprawdzałem to.
Ostatnio edytowano 14.07.2008, 21:23:56 przez Agarbund, łącznie edytowano 1 raz
Agarbund
Posty: 29
Dołączył(a): 04.09.2007
Lokalizacja: Wrocław

Post 14.07.2008, 21:05:21

A sprawdzałeś jaką wartość otrzymuje skrypt PHP? Z tego, co na szybko zobaczyłem w kodzie jQuery, tablice są serializowane. Nie sprawdzałem do jakiego formatu, ale przypuszczalnie do Twojego skryptu PHP (w przypadku tablicy ['a','b','c']) trafi wartość
Kod: Zaznacz cały
0=a&1=b&2=c

ale dla pewności sprawdź sam, bo nie mam czasu na takie rzeczy.
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19533
Dołączył(a): 14.04.2002

Post 14.07.2008, 21:32:41

print_r($_POST) zwraca tylko "Array()", więc ta tablica wogóle nie jest przekazywana do skryptu php. Szukam i szukam i nie mogę znaleźć nic na temat przesyłania tablic w AJAX-ie.

Znalazłem gdzieś jkaiś przykład z przesyłaniem tablicy i zmieniłem
Kod: Zaznacz cały
{"nowy": tablica}
na
Kod: Zaznacz cały
{"nowy[]": tablica}
ale to też nic nie dało. Z tym, że w tamtym przykładzie tablica była deklarowana w parametrach funkcji $.post(), a w moim przypadku jest tam podstawiana już zadeklarowana tablica. Zastanawiam się, czy wogóle da sie w ten sposób przekazać tablicę.

I jeszcze jedno, z tego co wiem, to tablice w JS to obiekty klasy Array. Czy nie pomogłoby wstawienie do parametrów kopii tego obiektu? Tak by to musiało wyglądać w językach niskiego poziomu (np C++), ale nie wiem, czy w ogóle myślę w dobrym kierunku, po prostu nie mam już pomysłów, co z tym robić.
Agarbund
Posty: 29
Dołączył(a): 04.09.2007
Lokalizacja: Wrocław


Powrót do JavaScript


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 gości

Hosting, Domeny, SSL
iCash

Subskrypcja

Mamy 50185 zarejestrowanych użytkowników.
Najnowszy użytkownik: sskijop


Nasi użytkownicy napisali:

  • 935003 wiadomości
  • w 246317 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)