Como sé que usando ajax puedes enviar datos al servidor, pero estoy confundido acerca de enviar una matriz para publicar usando XMLHttpRequest
, no en ninguna biblioteca como jQuery. Mi pregunta es, ¿es posible enviar una matriz al php
usando XMLHttpRequest
y cómo envía jQuery
una matriz a php, es decir, jQuery hace algún trabajo adicional para enviar una matriz al servidor (php $ _POST)?Cómo enviar matrices usando XMLHttpRequest al servidor
Respuesta
Bueno, no puede enviar nada más que una serie de bytes. El "envío de matrices" se realiza serializando (haciendo una representación de cadena de objetos) la matriz y enviándola. El servidor analizará la cadena y volverá a generar objetos en memoria desde ella.
Así enviando [1,2,3]
a PHP que podría suceder de esta manera:
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)
prueba.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)
Por cierto, con jQuery que sólo haría:
$.post("test.php", JSON.stringify(a));
Desea enviar un objeto jSon (que puede ser una matriz). Mira esto si estás usando php Send JSON data to PHP using XMLHttpRequest w/o jQuery.
Más sobre JSON: http://json.org/
jQuery JSON muestra: JQuery and JSON
Eso depende del protocolo que elija para empaquetar su estructura de datos. Los 2 más comúnmente utilizados son XML y JSON. Ambos tienen formas de declarar una matriz:
JSON: ['one thing', 'another thing']
XML: <things><thing name='one thing' /><thing name='another thing' /></things>
y tampoco tendrá ningún trabajo adicional significativa por el servidor. En muchos casos, reducirá el trabajo, ya que no necesita utilizar una convención de nomenclatura para diferenciarlos.
- 1. Cómo enviar varias imágenes al servidor usando MultipartEntity desde android
- 2. para enviar un archivo de texto al servidor usando javascript
- 3. jQuery elimina matrices vacías al enviar
- 4. ¿Cómo puedo enviar datos JSON al servidor
- 5. NSURLConnection JSON Enviar al servidor
- 6. Enviar archivo binario al servidor usando la publicación con Qt
- 7. JSch: Cómo enviar ssh a un servidor usando ssh-keys
- 8. ¿Cómo enviar una respuesta de error del servidor usando php?
- 9. ¿Cómo puede el servidor enviar datos al cliente?
- 10. Cómo enviar archivos grandes de cliente a servidor usando WCF?
- 11. ¿Cómo enviar un correo directamente al servidor SMTP sin autenticación?
- 12. C# asíncrono servidor web - cómo enviar datos al cliente
- 13. Cómo crear una rama y enviar al servidor
- 14. cómo enviar solicitudes de red al servidor (geográficamente) más cercano
- 15. ¿Cómo enviar ssh al servidor local sin contraseña?
- 16. Cómo "ejecutar" json del servidor al cliente usando javascript
- 17. ¿Cómo subir archivos al servidor usando JSP/Servlet y Ajax?
- 18. javax.net.ssl.SSLException al enviar correo usando JavaMail
- 19. Enviar matriz flotante del servidor C++ al cliente C#
- 20. Enviar datos JSON a PHP utilizando XMLHttpRequest sin jQuery
- 21. Contraseñas de hash antes de enviar al servidor
- 22. Enviar ubicación actual al servidor periódicamente en android
- 23. cruz XMLHTTPRequest dominio
- 24. Cómo enviar mensajes SMS desde un servidor
- 25. Descargando datos binarios usando XMLHttpRequest, sin overrideMimeType
- 26. Cómo obtener progreso desde XMLHttpRequest
- 27. ¿Enviar archivo de cliente a servidor usando XMLRPC?
- 28. Cómo envío mensajes del servidor al cliente usando SignalR Hubs
- 29. Enviar contenido de utf8 con el método de envío al servidor en Android usando HttpClient
- 30. Enviar mensaje del servidor al cliente con dnode
Gracias . ¿Puedes explicar 'file_get_contents (" php: // input ");'? –
@Red es la representación raw del cuerpo de la solicitud. Ver http://php.net/manual/en/wrappers.php.php. Por ejemplo, considere enviar formulario normal, donde tiene '$ _POST [" clave "] ===" valor "'. Los contenidos de '' php: // input "' son en este caso '" key = value "', que es lo que PHP usó para construir la matriz '$ _POST' por usted. Debe usarlo aquí porque al publicar JSON, php no completa '$ _POST' (ya que' $ _POST' solo funciona para formularios, no para JSON). – Esailija
Entonces, ¿cómo obtengo datos como '$ name = $ _ POST ['name']' cuando uso '$ .post'? –