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

Tablica|Obiekt z JS za pomocą AJAX POST do PHP

VPS Starter Arubacloud
0 głosów
1,040 wizyt
pytanie zadane 14 lutego 2016 w JavaScript przez makoso Mądrala (7,380 p.)

mam problem z wysłaniem tablicy lub tablicy z obiektami za pomocą ajax, aby działało przerabiam tablicę na stringa następnie stosuję explode w php, jednak wiem że się da przesłać normalnie tablice postem, coś muszę robić źle...

aktualnie mój kod wygląda tak:

//...
    sendArray += li.data('id') + "||" + (i+1) + "<<<";
//...
            $.ajax({
                type: "POST",
                url: Routing.generate('admin_ajax_position'),
            data: {data_array:sendArray},
                success: function (donnees) {
                data = Parse.JSON(donnees);
                $('body').append(data);
            }
        });
//...

wcześniej próbowałem w taki sposób:

sendArray.push({'id':li.data('id'),'position':i+1});

wysyłanie się nie zmieniło tylko zmienna była inaczej deklarowana jednak sam plik php-a zwracał kod 500 a w nagłówku pojawiało się zapis 

data_array:
​    undefined
​    undefined
​    undefined

3x dlatego że 3 testowe dane miałem wstawione, robiłem console.log(sendArray) i wszystko tam było poprawnie wyświetlane, ktoś zna jakiś sposób na przesłanie tablicy za pomocą ajax? dodam że po stronie php-a używam symfony.

2 odpowiedzi

+1 głos
odpowiedź 14 lutego 2016 przez Piotr Karasiński Mądrala (6,360 p.)
wybrane 14 lutego 2016 przez makoso
 
Najlepsza
Dobrze robisz przerabiając tablicę na string.

Tablica w JavaScript i PHP to inne struktury - musisz zastosować mechanizm zamiany i przesyłania.

Można jeszcze ew. wykorzystać JSON (są gotowe funkcje do zamiany)

http://stackoverflow.com/questions/5035547/pass-javascript-array-php
komentarz 14 lutego 2016 przez makoso Mądrala (7,380 p.)

idealnie :) właśnie tak funkcja po stronie js była mi potrzebna dzięki :) 

Rozwiązanie: JSON.stringify(array)

komentarz 14 lutego 2016 przez Comandeer Guru (599,730 p.)

Hm, no ale przecież jQuery ma to wbudowane…

  • $.param
  • $.fn.serialize
  • $.fn.serializeArray

Nie ma zatem potrzeby składać takiego ciągu ręcznie.

komentarz 14 lutego 2016 przez makoso Mądrala (7,380 p.)

Comandeer może źle stosuję, nie wiem ale gdy próbuję funkcji które tu wymieniłeś to:
1.zamienia mi na string podobny dla get jednak z undefined czyli: undefined=&undefined=&undefined=&undefined=

jak patrzę na przykład w dokumentacji to gdybym miał prostą tablicę to by było ok, ale ja mam tablicę (nie wiem czy dobrze nazwę) dwupoziomową i chyba ta funkcja się gubi potrzebowałem to do JSON-a sprowadzić aby dodatkowo łatwo w PHP było odkodować

po użyciu 2 następnych funkcji post się wysyła jednak nie zawiera danych

Może ja źle wytłumaczyłem o co mi chodzi, może Ty źle mnie zrozumiałeś ale te 3 funkcje nie znajdą u mnie zastosowania chociażby z samej nazwy to dwie następne powinny pasować ;)

 

komentarz 14 lutego 2016 przez Comandeer Guru (599,730 p.)
Pokaż tę tablicę ;)
komentarz 14 lutego 2016 przez makoso Mądrala (7,380 p.)
tak chyba najłatwiej mi to pokazać:
Array
(
    [0] => stdClass Object
        (
            [repository] => Group
        )

    [1] => stdClass Object
        (
            [id] => 1
            [position] => 3
        )

    [2] => stdClass Object
        (
            [id] => 2
            [position] => 1
        )

    [3] => stdClass Object
        (
            [id] => 3
            [position] => 2
        )

)

 

komentarz 14 lutego 2016 przez Comandeer Guru (599,730 p.)
Faktycznie, jQuery lami w tym wypadku. Aż dziwne, no ale cóż… Zwracam honor w takim razie ;)
komentarz 14 lutego 2016 przez makoso Mądrala (7,380 p.)
A ja liczyłem na jak zwykle jakieś swoje złe zastosowanie funkcji ;) Mimo wszystko dzięki za pomoc :)
0 głosów
odpowiedź 14 lutego 2016 przez Comandeer Guru (599,730 p.)
Skoro korzystasz z jQuery, to przecież jest http://api.jquery.com/jQuery.param/

Podobne pytania

0 głosów
1 odpowiedź 144 wizyt
0 głosów
1 odpowiedź 699 wizyt
0 głosów
1 odpowiedź 1,165 wizyt

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...