将php数组值获取到javascript数组中

将php数组值获取到javascript数组中,php,jquery,Php,Jquery,我需要在php中返回一个数组,并在javascript中使用它。当我打印返回值时,它打印空字符串。我怎么会犯错 $.ajax({ type: "POST", url: "sort2.php", success: function(result){ alert(result[0]); } }); //sort2.php $data[0]

我需要在php中返回一个数组,并在javascript中使用它。当我打印返回值时,它打印空字符串。我怎么会犯错

$.ajax({
     type: "POST",
     url: "sort2.php",    
     success: function(result){      

     alert(result[0]);                                            

    }
});
//sort2.php

$data[0] = "book";
$data[1] = "pen";
$data[2] = "school";
echo json_encode($data);
您可以将$.ajax请求的数据类型更改为json,并让jQuery自动从字符串解码json对象

或者,您可以在PHP标题中添加“Content-Type:application/json”,jQuery还应该自动解码json字符串。

您可以将$.ajax请求的数据类型更改为json,并让jQuery自动解码字符串中的json对象


或者,您可以在PHP标题中添加“Content-Type:application/json”,jQuery还应该自动解码json字符串。

您必须解析json数据

$.ajax({
     type: "POST",
     url: "sort2.php",    
     success: function(result){      

     //Parse Json to Array 
     result = jQuery.parseJSON(result);
     alert(result) // would output the result array                                      

    }
});

您必须解析JSON数据

$.ajax({
     type: "POST",
     url: "sort2.php",    
     success: function(result){      

     //Parse Json to Array 
     result = jQuery.parseJSON(result);
     alert(result) // would output the result array                                      

    }
});
在sort2.php文件中,更改以下代码:

echo json_encode($data);

它所做的是告诉客户端浏览器将响应视为JSON数据并进行相应的解析,而不是默认的HTML

另外,确保sort2.php文件与进行ajax调用的html文件位于同一文件夹中

希望这有帮助。

在sort2.php文件中,更改以下代码:

echo json_encode($data);

它所做的是告诉客户端浏览器将响应视为JSON数据并进行相应的解析,而不是默认的HTML

另外,确保sort2.php文件与进行ajax调用的html文件位于同一文件夹中


希望这对您有所帮助。

您也可以使用jQuery的$.post方法,该方法如下所示:因此您不需要更改php脚本,请参见此处:


您还可以通过jQuery使用$.post方法,该方法如下所示:因此您不需要更改php脚本,请参见此处:



如果未设置数据类型,则应默认为自动。返回的特定格式是否不会自动检测到JSON?@GregPettit我相信auto会查看MIME类型来尝试猜测格式。如果响应的MIME是text/HTMLPHP的默认MIME类型响应,那么它会猜错。我自己总是显式地设置数据类型,这也有助于提高可读性,但我很好奇。当然,直言不讳也无妨!我已经编写了数据类型:“json”,成功:functionresult{alertresult[0]但事实并非如此work@user1077300不工作对任何人都没有帮助。你有错误吗?产生了什么?结果是什么样的?没有数据类型设置,它应该默认为自动。返回的特定格式是否不会自动检测JSON?@GregPettit我相信自动会查看MIME类型来尝试猜测格式。如果响应的MIME是text/html PHP的默认MIME类型响应,它可能会猜错。我自己也一直显式设置数据类型,这也有助于提高可读性,但我很好奇。显式肯定不会有什么坏处!我已经编写了数据类型:“json”,成功:functionresult{alertresult[0]但事实并非如此work@user1077300不工作对任何人都没有帮助。你有错误吗?产生了什么?结果是什么样的?没有必要;见alex的答案。没有必要;见alex的答案。当你alertresultit给出一个空字符串时会发生什么当你alertresultit给出一个空字符串时会发生什么当我在服务器it中运行此代码时有效。但在我的本地版本中,它在alertresult[0]中给出了en错误行,因为它为null,或者不是对象。会有什么问题?请尝试使用“alertresult;”或更好的方法使用“console.logresult;”,它将显示在firebug->console中。并使用firebug检查php脚本在firebug中返回的内容可能是本地php的问题。每次使用ajax时都不会显示php错误。alertresult;给出未定义,当我编写console.log时,它会说console undefined当您的php出现问题时。需要知道您的phpscript返回什么当我运行php脚本时,它不会打印任何内容。json_encode在我的本地不起作用。当我在服务器上运行此代码时,它会起作用。但在我的本地,它在alertresult[0]中给出en错误行,因为它为null,或者不是对象。会有什么问题?请尝试使用“alertresult;”或更好的方法使用“console.logresult;”,它将显示在firebug->console中。并使用firebug检查php脚本在firebug中返回的内容可能是本地php的问题。每次使用ajax时都不会显示php错误。alertresult;给出未定义,当我写console.log时,它会说console undefined当你的php出现问题时。需要知道你的phpscript返回什么当我运行php脚本时,它不会打印任何内容。json_encode在我的本地代码中不起作用。