2016-10-14 75 views
0

即时通讯尝试从ajax发送一个数组从javascript到php。我的问题是PHP中的数组是空的,我不知道为什么。发送数组使用Ajax从JavaScript到PHP,不使用形式

我的数组:vacio [ 'NUM1:1', 'NUM2:2' ....]

此我javasvascript:

var vacio = new Array; 
    vacio = addElementAttributesToArrayEncode(); 

    var miJSON = JSON.stringify(vacio); 

    var miAjax = new Request({ 
     type: "POST", 
     url: "/multyWeb/actions/maintenance/mUpdateProductAction.php", 
     data: "ark=" + miJSON, 
     onSuccess: function(textoRespuesta){ 
     console.log("ok");console.log(textoRespuesta); 
     }, 
     onFailure: function(){ 
     console.log("fallo"); 
     } 
}) 
miAjax.send(); 

这是我的PHP:

if($_POST){ 
     echo "recibo algo POST Producto"; 
     //recibo los datos y los decodifico con PHP 
     $str = json_decode($_POST['ark'], true); 
     echo json_encode($str); } 

     else { echo "Error del POST";} 

而数组$ str是空的......出了什么问题?

感谢

+0

这可能有所帮助:http://stackoverflow.com/questions/5035547/pass-javascript-array-php – Rajesh

回答

0

应该在第一个例子中使用jQuery的

$.post('/multyWeb/actions/maintenance/mUpdateProductAction.php', {'param':'value','param1':'value1'}, function(data){ 
    return; 
}); 

OR

var vacio = new Array; 
vacio = addElementAttributesToArrayEncode(); 

var miJSON = JSON.stringify(vacio); 

var miAjax = new Request({ 
    type: "POST", 
    url: "/multyWeb/actions/maintenance/mUpdateProductAction.php", 
    data: {'ark':miJSON}, 
    onSuccess: function(textoRespuesta){ 
    console.log("ok");console.log(textoRespuesta); 
    }, 
    onFailure: function(){ 
    console.log("fallo"); 
    } 
}) 
miAjax.send(); 
2

修改你的Ajax调用和设置的内容类型,以JSON和发送数据的JSON而不是将其串化。

var miAjax = new Request({ 
    type: "POST", 
    url: "/multyWeb/actions/maintenance/mUpdateProductAction.php", 
    contentType: "application/json" 
    data: {'data':miJSON}, 
    onSuccess: function(textoRespuesta){ 
    console.log("ok");console.log(textoRespuesta); 
    }, 
    onFailure: function(){ 
    console.log("fallo"); 
    } 
}) 
miAjax.send(); 
相关问题