2009-06-04 21 views
17

Me pregunto cómo publicar una matriz usando $ .ajax. Mi matriz es algo como esto:jQuery post array

var a = new Array(); 
a['test'] = 1; 
a['test2'] = 2; 
and so on... 

me trataron:

$.ajax({ 
    url: baseUrl+"chat.php", 
    data: { vars: a}, 
    type: 'post', 
    success: function(data) { 
alert(data); 
}}); 

¿Alguna sugerencia?

+0

Nada se ve obviamente mal, ¿cómo está usted tratando de acceder a los datos en el php? – Steerpike

+0

¿Y ha usado algún tipo de control de tráfico para asegurarse de que la llamada llegue a la página chat.php? – Steerpike

Respuesta

32

prueba este:

var a = {}; 
a['test'] = 1; 
a['test2'] = 2; 

// or 


var a = {}; 
a.test = 1; 
a.test2 = 2; 

// or 


var a = { 
    test : 1, 
    test2 : 2 
}; 

$.ajax({ 
    url: baseUrl+"chat.php", 
    data: a, 
    type: 'post', 
    success: function(data) { 
    alert(data); 
    } 
}); 

A continuación, puede acceder a los datos en el script PHP como esto:

$_POST['test']; 
$_POST['test2']; 
+0

parece que no funciona :( –

+0

oh está funcionando. Mi mal. ¡Muchas gracias! :) –

+0

No hay problema. Me alegra que finalmente funcionó. –

1

Aquí es un ejemplo cómo pasar matrices (de código en la vida real) :

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: { CartID : cartID, 'Manufacturers[]' : manufacturers, 'PartNumbers[]' : partNumbers }, 
    success: function(res) 
    { 
    ... 
    }, 
    dataType: "json", 
    async: false 
}); 

luego en el lado del servidor:

$cartID = $_POST['CartID']; 
$manufacturers = $_POST['Manufacturers']; 
$partNumbers = $_POST['PartNumbers']; 
8

He utilizado este:

var newArray = new Array(); 
newArray.push("item1"); 
newArray.push("item2"); 
newArray.push("item3"); 

$.ajax({ 
    type: "POST", 
    url: urlToPost, 
    data: JSON.stringify(newArray), 
    contentType: "application/json" 
    }); 
2

Yo prefiero hacerlo de esta manera:

decir. lado

var data = [{ name: 'test1', value: 'test data' }, { name: 'test2', value: 'test data' }]; 

$.ajax({ 
    type: 'POST', 
    url: 'url', 
    data: data, 
    }); 

servidor (PHP): $_POST['test1'];$_POST['test2'];