Jak wiem przy użyciu ajax można wysłać dane do serwera, ale jestem zdezorientowany wysyłania tablicy do postu przy użyciu XMLHttpRequest
żadnej biblioteki jak jQuery. Moje pytanie brzmi, czy jest możliwe wysłanie tablicy do php
przy użyciu XMLHttpRequest
i jak jQuery
wysyła tablicę do php, to znaczy czy jQuery robi jakąkolwiek dodatkową pracę, aby wysłać tablicę do serwera (php $ _POST)?Jak wysyłać tablice za pomocą XMLHttpRequest do serwera
Odpowiedz
Nie można wysłać niczego poza łańcuchem bajtów. "Wysyłanie tablic" odbywa się poprzez szeregowanie (tworzenie reprezentacji ciągów obiektów) tablicy i wysyłanie jej. Serwer następnie przeanalizuje łańcuch i ponownie zbuduje z niego obiekty znajdujące się w pamięci.
Więc wysyłania [1,2,3]
nad PHP może się zdarzyć tak:
var a = [1,2,3],
xmlhttp = new XMLHttpRequest;
xmlhttp.open("POST", "test.php");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send('[1,2,3]'); //Note that it's a string.
//This manual step could have been replaced with JSON.stringify(a)
test.php:
$data = file_get_contents("php://input"); //$data is now the string '[1,2,3]';
$data = json_decode($data); //$data is now a php array array(1,2,3)
Btw, z jQuery byłoby po prostu zrobić:
$.post("test.php", JSON.stringify(a));
Chcesz wysłać obiekt jSon (który może być tablicą). Sprawdź to, jeśli używasz php Send JSON data to PHP using XMLHttpRequest w/o jQuery.
Więcej o JSON: http://json.org/
jQuery json próbki: JQuery and JSON
To zależy od protokołu wybrać pakować swoje struktury danych. 2 najczęściej używane to XML i JSON. Obie mają sposoby, aby zadeklarować tablicę:
JSON: ['one thing', 'another thing']
XML: <things><thing name='one thing' /><thing name='another thing' /></things>
i nie podejmie żadnej znaczącej dodatkowej pracy przez serwer. W wielu przypadkach faktycznie zmniejszy to pracę, ponieważ nie trzeba używać konwencji nazewnictwa, aby je rozróżnić.
- 1. Jak przekazywać zmienne za pomocą XMLHTTPRequest
- 2. Jak wysyłać wiadomości SMS z serwera
- 3. Pobierz postęp poszczególnych plików za pomocą XMLHttpRequest
- 4. Jak obsługiwać wielu klientów podłączonych do serwera za pomocą gniazd?
- 5. Tablice JavaScript utworzone za pomocą Object.create - nie prawdziwe tablice?
- 6. Jak wysyłać multimedia z serwera do aplikacji na Androida?
- 7. Przekazywanie tablicy do serwera za pomocą signalR
- 8. Jak ustawić plik cookie (nagłówek) za pomocą XMLHttpRequest w JavaScript?
- 9. Podłączanie do serwera SQL za pomocą pypyodbc
- 10. Jak wysyłać i odbierać strumienie głosu za pomocą RTP
- 11. Jak wysłać wiadomość do urządzenia za pomocą C2DM z serwera uwierzytelnionego za pomocą OAuth2?
- 12. Jak wysyłać pliki cookie za pomocą selenu webdriver?
- 13. Czy można sortować tablice za pomocą preprocesora?
- 14. Projektowanie serwera za pomocą SocketAsyncEventArgs
- 15. Jak wysyłać wiadomości e-mail za pomocą prostych poleceń SMTP za pośrednictwem Gmaila?
- 16. Czy mogę wysyłać wiadomości do kolejki JMS spoza serwera aplikacji?
- 17. Jak zablokować witrynę za pomocą serwera SQUID
- 18. Nie można wysyłać plików cookie za pomocą programu RestSharp
- 19. Jak skopiować lokalne repozytorium do zdalnego serwera za pomocą git?
- 20. Jak "przesyłać" json z serwera do klienta za pomocą javascript
- 21. Odczytaj plik z serwera za pomocą ssh za pomocą pythona
- 22. Pasek postępu podczas przesyłania dużych plików za pomocą XMLHttpRequest
- 23. "(null)" Chcesz wysyłać Ci powiadomienia za pomocą iOS9/XCode 7
- 24. Jak scalić dwie tablice obiektów za pomocą aplikacji lodash?
- 25. Nie można wysyłać powiadomień FB za pomocą nowego interfejsu API
- 26. XMLHttpRequest zmienia POST do OPCJA
- 27. Uzyskaj dane serwera Sql za pomocą smo
- 28. Jak wysyłać dane do przeglądarki iz przeglądarki za pomocą aplikacji Qt HTML5
- 29. Jak wysyłać polecenia klawiatury i myszy do podstawowego systemu operacyjnego za pomocą Ruby?
- 30. Jak utworzyć formularz e-mail, który może wysyłać wiadomości e-mail za pomocą html
Dziękuję . czy możesz wyjaśnić 'file_get_contents (" php: // input ");'? –
@Red to surowa reprezentacja treści żądania. Zobacz http://php.net/manual/en/wrappers.php.php. Na przykład, rozważ składanie formularza normalnego, gdzie masz '$ _POST [" klucz "] ===" wartość ". Zawartość '' php: // input "' to w tym przypadku '" key = value "', czyli to, co PHP użył do zbudowania tablicy '$ _POST'. Musisz go użyć tutaj, ponieważ podczas wysyłania JSON, php nie wypełnia '$ _POST' (ponieważ' $ _POST' działa tylko dla formularzy, nie JSON). – Esailija
W jaki sposób otrzymuję dane jako '$ name = $ _ POST ['name']', gdy używam '$ .post'? –