2016-10-14 105 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(); 
相關問題