在Ajax POST之后从php获取数组

时间:2016-09-14 18:11:19

标签: javascript php ajax post

我使用以下命令将我在javascript中发送的数组发送到php:

usernames = ['username1','username2']


$.ajax({
            url: "my_Url",
            type: "post",
            data: {username:usernames} ,
            success: function (response) {
               // you will get response from your php page (what you echo or print)     
               alert(response);
            }
        });

数据将被发送到包含以下内容的php脚本:

<?php
header('Access-Control-Allow-Origin: *');
$usernames = $_POST['username'];
echo $usernames;
?>

问题是我得到一个警告说Array但不是实际数组本身的内容。如何获取数组内部的内容并将其再次放入变量中。

1 个答案:

答案 0 :(得分:0)

因为数据类型是一个数组,所以javascript会从回显的PHP中发出警告。通常,您可以使用SELECT COUNT(DISTINCT fieldA) + MAX(CASE WHEN fieldA IS NULL THEN 1 ELSE 0 END)

将数组转换为字符串,该字符串可在ajax响应中显示。
json_encode()

然后在前端处理JSON,使用echo json_encode($usernames); 。正如一位用户指出的那样,在回显json之前,在后端脚本中设置内容头是很有用的:

JSON.parse()

更详细地讨论了这种方法here

对代码中的数值数组有用的另一种可能性是简单地回显内爆数组,它将把它转换为字符串:

header('Content-Type: application/json');