Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从AJAX调用返回数组?_Javascript_Php_Jquery_Json_Ajax - Fatal编程技术网

Javascript 如何从AJAX调用返回数组?

Javascript 如何从AJAX调用返回数组?,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我正在寻找一个更好的解决方案来使用jQuery进行AJAX调用,让PHP文件返回一个数组,并将其作为Javascript数组在客户端显示出来。以下是我一直在做的: PHP文件Example.PHP: <?php $id_numbers = array('NES-ZL','NES-AL','SNS-ZL'); for ($i=0; $i<count($the_array); $i++){ echo $id_numbers[$i]; ec

我正在寻找一个更好的解决方案来使用jQuery进行AJAX调用,让PHP文件返回一个数组,并将其作为Javascript数组在客户端显示出来。以下是我一直在做的:

PHP文件Example.PHP:

<?php
    $id_numbers = array('NES-ZL','NES-AL','SNS-ZL');

    for ($i=0; $i<count($the_array); $i++){
        echo $id_numbers[$i];
        echo '|';
    }
?>
我目前的方法对我来说太复杂了一点

我想做的是能够

return $id_numbers;
并在AJAX调用后直接将其转换为Javascript数组

想法,有人吗?

看看PHP。您可以使用dataType:json参数获得$.ajax来识别这一点。

用于在客户端和服务器之间传输数据类型、数组和对象

在PHP中:

在JavaScript中:

id_numbers = JSON.parse(msg);
PHP:

JavaScript:

id_numbers = JSON.parse(msg);
正如Wolfgang提到的,您可以为jQuery提供第四个参数来自动解码JSON

id_numbers = new Array();
$.ajax({
    url:"Example.php",
    type:"POST",
    success:function(msg){
        id_numbers = msg;
    },
    dataType:"json"
});

看看json_编码http://php.net/manual/en/function.json-encode.php. 它从PHP5.2开始提供。使用参数数据类型:“json”为您解析它。您将把对象作为成功的第一个参数。有关更多信息,请参阅jQuery文档:

Php有一个超级性感的函数,只需将数组传递给它:

$json = json_encode($var);

$.ajax({
url:"Example.php",
type:"POST",
dataType : "json",
success:function(msg){
    console.info(msg);
}
});

简单:

@Xeon06,很好,但仅供那些阅读本文并像我一样尝试的人参考。。。 从php=>json\u encode$theArray返回数组时。转换为字符串,对于我这样的软js用户来说,esp不容易操作

在js内部,您试图使用JSON.parse来获取数组的数组值和/或键,如var jsArray=JSON.parsedata中的JSON.parse,其中数据是从php返回的数组。json编码的字符串被转换为js对象,现在可以轻松地进行操作

e、 g。 foo={one:1,two:2,three:3}-在JSON.parse之后获取


对于foo{console.logfoo[+key+]=+foo[key]}中的键-打印到您的firebug控制台。瞧

嗯,我知道我有点晚了,但我尝试了你所有的解决方案,但没有成功! 下面是我如何做到这一点的。 首先,我正在做一个Asp.NETMVC项目。 我唯一更改的是在我的c方法中:

public ActionResult获取邀请Guid s\u ID { 使用var db=new cRM\u Verband\u BWEntities { var listSidsMit=来自db.TERMINEINLADUNGEN中的数据,其中data.RECID_KOMMUNIKATIONEN==s_ID select data.RECID_MITARBEITER.ToString.ToArray; 返回JsonlistSidsMit; } } JS中的SuccessFunction:

函数成功函数结果{ console.logresult; }
我将方法类型从string[]更改为ActionResult,当然最后我用Json方法包装了我的数组listSidsMit。

非常有用!这肯定会让一切变得更简单、更漂亮。@k_sel这几乎是一个行业标准。每个人都将其用于AJAX。您会注意到JSON也是有效的JavaScript。别忘了对其他noob使用async:false:响应必须是纯JSON。我有一些HTML在里面,一个评论。没有错误消息,只是失败了。非常感谢。这对我来说确实很有帮助,因为如果您使用多维数组,请尝试对内部数组进行json_编码,因此$parent_array=array json_encode$child_array。在我的情况下是有效的。
$json = json_encode($var);

$.ajax({
url:"Example.php",
type:"POST",
dataType : "json",
success:function(msg){
    console.info(msg);
}
});