我正在使用谷歌地图。我的地图数据来自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
];
我该怎么做?
答案 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只是没有进行调用
// 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