Mercedes, parte de este staff, nos hizo el favor de crear este post ya que conoce perfectamente dicho tema.
Solución:
Puede pasar los datos al script PHP como un objeto JSON. Suponga que su objeto JSON es como:
var stuff ='key1':'value1','key2':'value2';
Puede pasar este objeto al código php de dos maneras:
1. Pasar el objeto como string:
Llamada AJAX:
$.ajax(
type : 'POST',
url : 'result.php',
data : result:JSON.stringify(stuff),
success : function(response)
alert(response);
);
Puede manejar los datos pasados al result.php
como :
$data = $_POST["result"];
$data = json_decode("$data", true);
//just echo an item in the array
echo "key1 : ".$data["key1"];
2. Pasar el objeto directamente:
Llamada AJAX:
$.ajax(
type : 'POST',
url : 'result.php',
data : stuff,
success : function(response)
alert(response);
);
Manejar los datos directamente en result.php
de $_POST
array como :
//just echo an item in the array
echo "key1 : ".$_POST["key1"];
Aquí sugiero el segundo método. Pero deberías probar ambos 🙂
Si quieres enviar key pares de valores, que es lo que estoy viendo, sería mejor usar una biblioteca PHP JSON (como esta … http://php.net/manual/en/book.json.php)
Entonces usted puede enviar real key pares de valores, usando formato JSON como… “ques_5” : “19”, “ques_4”: “19”
Prueba esto
var array = ["9", "ques_5", "19", "ques_4"];
console.log(array.join(","));
el código anterior generará string separados por comas como 9,ques_5,19,ques_4
luego péguelo en la llamada ajax.
y luego en php explode
que string.
Otras posibles soluciones.
Primero
var obj = 'item1': 'value1', 'item2': 'value2' ;
$.ajax(
type: 'post',
cache: false ,
url: 'test/result.php',
data: result : JSON.stringify(obj) ,
success: function(resp)
alert(resp);
);
Segundo
var a = $.JSON.encode(obj);
$.ajax(
type: 'post',
cache: false ,
url: 'test/result.php',
data: result : a ,
success: function(resp)
alert(resp);
);
In PHP File
Si conservas algún recelo o capacidad de progresar nuestro crónica puedes añadir una disquisición y con gusto lo observaremos.