通过AJAX将对象传递给PHP

时间:2016-11-10 10:40:58

标签: javascript php jquery ajax

我想知道是否可以使用jQuery AJAX函数将数组传递给php函数。我有以下作为我的javascript

arr_data = {
    field01: "data 01",
    field02: "data 02",
    field03: "data 03",
    field04: "data 04"
}

$.ajax({
    url: "scripts/php/phpfunc.php",
    type: "GET",
    dataType: "json",
    data: {
        'action': "exec_find",
        'field01': arr_data["field01"],
        'field02': arr_data["field02"],
        'field03': arr_data["field03"],
        'field04': arr_data["field04"]
    },
    success: function(result) {
        // continue program
    },
    error: function(log) {
        // handle error
    }
});

当我尝试执行以下操作时

arr_data = {
    field01: "data 01",
    field02: "data 02",
    field03: "data 03",
    field04: "data 04"
}

$.ajax({
    url: "scripts/php/phpfunc.php",
    type: "GET",
    dataType: "json",
    data: {
        'action': "exec_find",
        'data': arr_data
    },
    success: function(result) {
        // continue program
    },
    error: function(log) {
        // handle error
    }
});

我在PHP中收到它作为“数组”。如何正确发送对象以便PHP函数可以使用它?

3 个答案:

答案 0 :(得分:4)

请尝试以json的格式传递数组。然后在你的php中使用get json并访问json数组。

<script>

arr_data = {
    field01: "data 01",
    field02: "data 02",
    field03: "data 03",
    field04: "data 04"
}
var  myJsonString= JSON.stringify(arr_data);
$.ajax({
    url: "scripts/php/phpfunc.php",
    type: "GET",
    dataType: "json",
    data: {
        'action': "exec_find",
        'data': myJsonString
    },
    success: function(result) {
        // continue program
    },
    error: function(log) {
        // handle error
    }
});
</script>

这是你的java脚本。以下是php

$dataJson=json_decode($_GET['data']);

在这里,您可以获取json数组并循环遍历它并执行您想要的任何操作。

请试试这个。这适用于我的情况。

答案 1 :(得分:1)

从第二个ajax

您可以根据属性名称访问数据,例如:$_GET['data']['field01']

$_GET['data']是在关联数组中用php转换的js对象

答案 2 :(得分:0)

试试这个:

$.ajax({
    url: "scripts/php/phpfunc.php",
    method: "POST",
    dataType: "json",
    data: {
        'action': "exec_find",
        'data': arr_data.serialize()
    },

序列化()

http://api.jquery.com/serialize/

以字符串

转换数组