cómo pasar una matriz asociativa de javascript en ajax a un archivo php
Frecuentes
Visto 10,492 veces
4
¿Cómo puedo pasar datos (matriz asociativa) al archivo php?
function ajax(url,data,callback)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState === 4 ) {
callback( xmlhttp.responseText );
}
}
}
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}
2 Respuestas
7
De la forma en que leo esto, estás en javascript y tienes un objeto javascript (javascript no tiene matrices asociativas, solo matrices y objetos). Por lo tanto, independientemente de los datos que tenga, debe convertirlos en una cadena y enviarlos a través de POST o GET a su script php. recomendaría incluir JSON3 como un polyfill para asegurarse de que tendrá JSON.stringify
en su página (para navegación cruzada). El código será algo como esto:
var data = {
someData: 'data',
moreData: [
'blah',
'bleh'
]
};
var stringData = JSON.stringify( data );
// using jquery ajax for brevity (http://api.jquery.com/jQuery.ajax/)
$.ajax({
type: "POST",
url: "your-php-script.php",
data: { data: stringData }
});
Ahora su secuencia de comandos php puede enganchar esa cadena y convertirla nuevamente en json:
<?php
$dataString = $_POST['data'];
$data = json_decode($dataString);
Con suerte, esto es lo que estabas buscando. ¡Salud!
contestado el 03 de mayo de 12 a las 19:05
0
Puedes usar PHP Funciones JSON lograr esto. Codificará/decodificará matrices en una notación que javascript pueda manejar.
contestado el 03 de mayo de 12 a las 19:05
No, pero es el único cuerdo camino. - Ignacio Vázquez-Abrams
podría usar serialize() y unserialize(), pero probablemente encontrará errores en alguna parte. JSON fue creado para hacer lo que quieras. - Romo
entonces es así var json = { 'info' : data}; - leo0110
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php javascript ajax or haz tu propia pregunta.
Utiliza JSON - Marc B
json_encode y json_decode son tus amigos - Anigel
Y por favor use jQuery, este código se parece a la edad de piedra... - Rob Angelier
No hay suficiente jQuery - Xeoncross
puede que no necesite jquery.com - lilHar