首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在回调和返回数组中使用foreach循环的PHP和Ajax

在回调和返回数组中使用foreach循环的PHP和Ajax
EN

Stack Overflow用户
提问于 2015-02-20 15:33:54
回答 2查看 11K关注 0票数 2

我正在循环遍历来自PHP结果的回调

但是我不能或者我不知道如何将数组作为回调返回

这是我的代码:

代码语言:javascript
复制
$id = $_GET['id'];

$data = file_get_contents('__url');

parse_str($data);

$array = explode(',', $url_encoded_fmt_stream_map);

foreach($array as $item) {
    parse_str($item);
    echo $_GET['callback']."(".json_encode($url).");"; // it should return an array at least 3 urls
}

这是我的Jquery代码:

代码语言:javascript
复制
$.ajax({
    url:"file.php",
    dataType: 'jsonp',
    data: {id: id},
    success:function(response){
        $('body').append(response);
    }
});

它只给了我一个结果,但它应该返回一个数组,它的工作方式就像我在php代码中没有使用foreach循环一样。

我测试了没有 ajax请求的ajax代码,它返回了一个url数组,但是如果我使用ajax回调,它只返回一个url。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-20 16:10:22

如果你尝试像这样的东西:

代码语言:javascript
复制
$id = $_GET['id'];

$data = file_get_contents('__url');

parse_str($data);

$array = explode(',', $url_encoded_fmt_stream_map);

$final_arr = array();
foreach($array as $item) {
    parse_str($item);
    array_push($final_arr , $url);
}

$jsonp = json_encode($final_arr);

if(isset($_GET['callback'])){
    header("Content-Type: application/json");
    echo $_GET['callback'] . '(' . $jsonp . ')';
}else{
    echo $jsonp;
}

你的ajax:

代码语言:javascript
复制
$.ajax({
    url:"file.php",
    dataType: 'jsonp',
    data: {id: id},
    success:function(response){
        var obj = JSON.parse(response);
        $.each(obj, function(key,val){
             console.log(key);
             console.log(val); //depending on your data, you might call val.url or whatever you may have
        });
        $('body').append(response);
    }
});
票数 3
EN

Stack Overflow用户

发布于 2015-02-20 15:40:50

它只返回一个URL,因为它只返回第一个URL。您应该在encode函数中对整个数组和循环进行如下操作:

PHP:

代码语言:javascript
复制
$id = $_GET['id'];
$data = file_get_contents('__url');
parse_str($data);
$array = explode(',', $url_encoded_fmt_stream_map);
echo json_encode($array);

联署材料:

代码语言:javascript
复制
$.ajax({
    url:"file.php",
    dataType: 'jsonp',
    data: {id: id},
    success:function(response){
        var res = JSON.parse(res);
        $.each(res, function(key, index){
           $('body').append(index);
        });
    }
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28632637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档