通过 AJAX 将对象传递给 PHP

新手上路,请多包涵

我想知道是否可以使用 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 函数可以使用它?

原文由 TheLovelySausage 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 327
2 个回答

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

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

原文由 madalinivascu 发布,翻译遵循 CC BY-SA 3.0 许可协议

请尝试以json格式传递数组。然后在您的 php 中使用获取 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 数组并循环遍历它并做任何你想做的事。

请尝试一下。这适用于我的情况。

原文由 Pranav MS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题