使用Ajax从javascript发送数组到php,不使用表单

时间:2016-10-14 10:35:08

标签: javascript php arrays ajax post

我试图使用ajax从javascript发送数组到php。我的问题是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是空的......出了什么问题?

感谢

2 个答案:

答案 0 :(得分:2)

修改你的ajax调用并将内容类型设置为json并将数据发送为json而不是stringify它。

test

答案 1 :(得分: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();