Như tôi biết bằng cách sử dụng ajax bạn có thể gửi dữ liệu đến máy chủ nhưng tôi đang bối rối về việc gửi một mảng để đăng bằng cách sử dụng XMLHttpRequest
không phải bất kỳ thư viện như jQuery. Câu hỏi của tôi là, có thể gửi một mảng đến php
sử dụng XMLHttpRequest
và cách jQuery
gửi một mảng tới php, tôi có nghĩa là jQuery thực hiện thêm bất kỳ công việc nào để gửi mảng tới máy chủ (php $ _POST)?Làm thế nào để gửi mảng bằng cách sử dụng XMLHttpRequest đến máy chủ
Trả lời
Bạn không thể gửi bất kỳ điều gì ngoài một chuỗi byte. "Gửi mảng" được thực hiện bằng cách serializing (làm cho chuỗi đại diện của các đối tượng) mảng và gửi đó. Máy chủ sau đó sẽ phân tích cú pháp chuỗi và xây dựng lại các đối tượng trong bộ nhớ từ nó.
Vì vậy, gửi [1,2,3]
qua để PHP có thể xảy ra như vậy:
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, với jQuery bạn sẽ chỉ làm:
$.post("test.php", JSON.stringify(a));
Bạn muốn gửi đối tượng jSon (có thể là một mảng). Kiểm tra điều này nếu bạn đang sử dụng php Send JSON data to PHP using XMLHttpRequest w/o jQuery.
Thông tin thêm về JSON: http://json.org/
jQuery JSON mẫu: JQuery and JSON
đó phụ thuộc vào giao thức bạn chọn gói cấu trúc dữ liệu của bạn. 2 thường được sử dụng nhất là XML và JSON. Cả hai đều có cách để khai báo một mảng:
JSON: ['one thing', 'another thing']
XML: <things><thing name='one thing' /><thing name='another thing' /></things>
và không sẽ mất bất kỳ công việc thêm đáng kể bởi máy chủ. Trong nhiều trường hợp, nó sẽ thực sự giảm bớt công việc vì bạn không cần sử dụng quy ước đặt tên để phân biệt giữa chúng.
- 1. Làm cách nào để gửi tin nhắn từ máy chủ đến máy khách bằng SignalR Hubs
- 2. Làm thế nào để SSH đến một máy chủ đằng sau một máy chủ SSH bằng cách sử dụng JSch?
- 3. Gửi tệp từ máy khách đến máy chủ bằng XMLRPC?
- 4. Gửi tệp nhị phân đến máy chủ bằng cách sử dụng bài đăng với Qt
- 5. Làm thế nào để lưu mảng các đối tượng bằng cách sử dụng máy chủ parse.com iOS?
- 6. để gửi tệp văn bản tới máy chủ bằng cách sử dụng javascript
- 7. JSch: Làm thế nào để ssh vào một máy chủ bằng cách sử dụng ssh-keys
- 8. Làm thế nào để phát hiện phía máy chủ Mobile Safari bằng cách sử dụng PHP?
- 9. Làm thế nào để chuyển mảng java sang mảng javaScript bằng cách sử dụng jsp?
- 10. Gửi dữ liệu JSON tới PHP bằng cách sử dụng XMLHttpRequest w/o jQuery
- 11. Làm thế nào tôi có thể chuyển một băm bằng cách sử dụng máy khách và máy chủ trong Perl?
- 12. Cách gửi chuỗi hình ảnh Base64 được mã hóa đến máy chủ bằng cách sử dụng đối tượng JSON
- 13. Làm cách nào để truy cập dữ liệu được gửi đến máy chủ của tôi bằng BaseHTTPRequestHandler?
- 14. Cách tạo máy chủ WebSocket bằng cách sử dụng SuperWebSocket
- 15. thế nào để gửi yêu cầu mạng đến máy chủ (địa lý) gần
- 16. Thiết kế máy chủ bằng cách sử dụng SocketAsyncEventArgs
- 17. iphone để gửi email bằng cách sử dụng máy chủ SMTP?
- 18. Làm thế nào để gửi HTTP HTTP bằng cách sử dụng NameValuePair?
- 19. Cách gửi tệp lớn từ máy khách đến máy chủ bằng WCF?
- 20. cách gửi thư đến kết nối websocket cụ thể bằng máy chủ java
- 21. Làm cách nào để gửi email từ máy chủ wamp cục bộ bằng PHP?
- 22. Làm cách nào để gửi e-mail từ django bằng máy chủ google smtp?
- 23. Cookie JQuery jsession không được gửi đến máy chủ
- 24. Làm thế nào để gửi sự kiện quan trọng đến ứng dụng bằng cách sử dụng XCB?
- 25. Làm thế nào để zip/gzip dữ liệu người dùng trong javascript trước khi gửi đến máy chủ?
- 26. Sự kiện được gửi trên máy chủ trên khung chơi bằng cách sử dụng Java
- 27. Làm thế nào để gửi dữ liệu bổ sung bằng cách sử dụng PLupload?
- 28. Làm cách nào để gửi yêu cầu HTTP POST tới máy chủ từ Excel bằng VBA?
- 29. Facebook gửi hộp thoại đến nhiều người bạn bằng cách sử dụng một mảng người nhận
- 30. Làm cách nào để chuyển chứng chỉ SSL đến máy chủ SOAP bằng SOAPpy/Python
Cảm ơn bạn . bạn có thể giải thích 'file_get_contents (" php: // input ");'? –
@Red nó là đại diện thô của cơ thể yêu cầu. Xem http://php.net/manual/en/wrappers.php.php. Ví dụ: hãy xem xét gửi biểu mẫu bình thường, trong đó bạn có '$ _POST [" key "] ===" giá trị "'. Nội dung của '" php: // input "' trong trường hợp này là '" key = value "', đó là những gì PHP được sử dụng để xây dựng mảng '$ _POST' cho bạn. Bạn cần sử dụng nó ở đây vì khi đăng JSON, php không điền '$ _POST' (vì' $ _POST' chỉ hoạt động cho biểu mẫu chứ không phải JSON). – Esailija
Sau đó, làm thế nào tôi nhận được dữ liệu như '$ name = $ _ POST ['name']' khi tôi sử dụng '$ .post'? –