我想知道是否可以使用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函数可以使用它?
答案 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)
您可以根据属性名称访问数据,例如:$_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/
以字符串
转换数组