2016-11-10 173 views
1

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

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函数使用?

+2

您可以访问像数据:$ _GET [”数据'] ['field01'] – madalinivascu

+0

当你发送数据为json时,在php函数中使用json_decode将json转换为PHP数组,然后你可以使用ca n解析它 – Webdev

+1

只是FYI,你发送的是一个对象。我相应地更新了这个问题 –

回答

1

从您可以访问基于类的属性名称的数据,第二AJAX:$_GET['data']['field01']

$_GET['data']是一个关联数组转换PHP中的JS对象

2

请尽量传递数组格式的json。然后使用获取你的PHP中的JSON并访问JSON数组。

<script> 

arr_data = { 
    field01: "data 01", 
    field02: "data 02", 
    field03: "data 03", 
    field04: "data 04" 
} 
var = 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数组并循环它并做任何你想要的。

请试试这个。这在我的情况下工作。

0

试试这个:

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

连载()

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

从第二AJAX转换你的数组中的字符串

+0

这看起来对未来有用 – Trent