如何在另一个javascript中使用ajax响应数据

时间:2014-08-10 15:14:44

标签: javascript php jquery ajax

我正在使用谷歌地图。我的地图数据来自php使用ajax响应。

我的ajax代码:

<script type="text/javascript">

    $.ajax({
    type: "POST",
    url: "mapajax.php",
    dataType:'text',
    success: function (result) {

                console.log(result); 

    }
    });
</script>

现在我需要将我的回复数据放在我的地图var location

function initialize() {
    var locations = [
      //Now here I put my ajax response result
    ];

我该怎么做?

4 个答案:

答案 0 :(得分:1)

您必须稍微重构一下代码。我假设您从成功回调中呼叫initialize

locations数组作为参数传递给initialize

function initialize(locations) { ... }

$.ajax({
    type: "POST",
    url: "mapajax.php",
    dataType:'text',
    success: function (result) {
        initialize(result); 
    }
});

然后,只要success: initialize不期望其他参数,您就可以减少甚至更多initialize

答案 1 :(得分:1)

这是一个使用$ .when的示例,但它的SYNTAX只是没有进行调用

http://jsfiddle.net/2y6689mu/

// Returns a deferred object
function mapData(){ return $.ajax({
    type: "POST",
    url: "mapajax.php",
    dataType:'text'
});
}
// This is the magic where it waits for the data to be resolved
$.when( mapData() ).then( initialize, errorHandler );

EDIT **函数已经返回一个承诺,所以你可以使用

mapData().then()

每个代码-jaff评论

答案 2 :(得分:0)

这是使用回调http://recurial.com/programming/understanding-callback-functions-in-javascript/完成的,如果您想阅读这些内容,请点击这里链接。我们在这里查看您当前的代码:

<script type="text/javascript">

$.ajax({
type: "POST",
url: "mapajax.php",
dataType:'text',
success: function (result) {
    console.log(result); 
}
});
</script>

正如您所注意到的那样,&#39;结果&#39;数据可在成功函数中访问。那你怎么把它运到另一个功能呢?您使用console.log(result)将数据打印到控制台。没有意识到,你几乎自己解决了这个问题。

只需在ajax调用的成功函数中调用initialize函数:

<script type="text/javascript">

$.ajax({
type: "POST",
url: "mapajax.php",
dataType:'text',
success: function (result) {
    initialize(result); 
}
});

</script>

答案 3 :(得分:0)

预期dataType$.ajax()mapajax.php的回复是text吗?

尝试

$(function () {
    function initialize(data) {
        var locations = [
        //Now here I put my ajax response result
        ];
        // "put my ajax response result"
        // utilizing `Array.prototype.push()`
        locations.push(data);
        // do stuff
        // with `locations` data, e.g., 
        return console.log(JSON.parse(locations));
    };
    $.ajax({
        type: "POST",
        url: "mapajax.php",
        dataType: 'text',
        success: function (result) {
            initialize(result);
        }
    });
});

jsfiddle http://jsfiddle.net/guest271314/maaxoy91/

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push